A multi-objective optimization algorithm to optimize multiple objectives of different costs. Currently, we support multi-objective optimization of two different objectives using gaussian process (GP) and random forest (RF) surrogate models. We implement this method to optimize accuracy and energy consumption of different deep neural networks.
Our approach is developed to perform multi-objective optimization on resource constrained devices specially NVIDIA Jetson Tegra X2 (TX2) and NVIDIA Jetson Xavier. To run FlexiBO please resolve the following dependencies:
- GPy
- apscheduler
- scikit-learn
- PyTorch
- Keras (Tensorflow)
We thank the reviewers of IJCAI'20, ICPE'20 and JAIR for their valuable feedbacks. Their reviews and the rebuttals can be found here.
To run FlexiBO in online mode use the following command:
command: python RunFlexiBO.py -m online -d data -s surrogate
For example, to run optimization with GP in online with measurements.csv as initial data use:
command: python RunFlexiBO.py -m online -d measurements.csv -s GP
To run FlexiBO in offline mode use the following command:
```python
command: python RunFlexiBO.py -m offline -d data -s surrogate
For example, to run optimization with RF in online with measurements.csv as initial data use:
command: python RunFlexiBO.py -m offline -d measurements.csv -s RF