IBEA version that could be run from a host PC, hopefully interfacing with more than one board. It does NOT contain the source C++ files to setup the FPGA, so it is not intended to be cloned on a board. It is just to configure the network.
To install the package create a conda environment and install dependences:
conda create -n IbeaBioemus
conda activate IbeaBioemus
conda install --file requirements.txt
To use the package you should follow these steps:
- Open the
mainIBEA.ipynbnotebook. - Set the variable
client_ip_addresswith the IP address of your FPGAs. (It can be a list of multiple addresses, parallel execution should work). - Set the path of the
save_folderwhere saving the results, and thegoal_pathwhere taking the goals. The goals must be a .CSV file containing the files<names_of_metrics>.CSV, with the names in lower case. - Set the
lboundanduboundas the lower and upper bounds of the parameters that IBEA uses for its search. - Set the hyperparameters of the IBEA algorithm:
n_initial_individuals,simulation_time,n_offspringandmax_generationsare the most important ones. For a full description of the parameters look at theIBEAclass in theibea.pyfile. - Run the cell.
The results are saved in the specified save_path. They consists in:
- A
datafolder containing all the binary files. - A file
Output.txtcontaining all the information about the run. - A file
monitor.txtcontainig the best fitness value contained in each run. - a folder
Best_configurationscontaining the configuration files of the individual with the highest area of the polar plot.
To plot the results use the file plot_figures.ipynb. You only need to insert the path where results are saved and the path where goals are saved.