Bayesian optimization of tensorflow models
npm install @piximi/autotuner``javascript`
import { TensorflowlModelAutotuner } from '@piximi/autotuner';
Initialize the autotuner by specifying metrics, a dataset and the number of categories.
`javascript`
var autotuner = new TensorflowlModelAutotuner(['accuracy'], dataset, numberOfCategories);`$3
javascript
// create some uncompiled sequential tensorflow model
const testModel = await createModel();
const parameters = { lossfunction: [LossFunction.categoricalCrossentropy], optimizerAlgorithm: [tensorflow.train.adadelta()], batchSize: [10], epochs: [5,10] };
autotuner.addModel('testModel', testModel, parameters);
`
javascript
autotuner.bayesianOptimization();
`
`javascript
autotuner.gridSearchOptimizytion();
`
The ojective function of the optimization can be specified (either 'error' or 'accuracy'):
`javascript
autotuner.gridSearchOptimizytion('accuracy');
`
The acquisition function of the optimization can be specified. Either expected improvement (i.e. 'ei') or upper confidence bound (i.e. 'ucb'):
`javascript
autotuner.gridSearchOptimizytion('accuracy', 'ei');
`
Evaluating a model can be done using cross validation:
`javascript
autotuner.gridSearchOptimizytion('accuracy', 'ei', true);
`
When doing bayesian optimization the maximum number of domain points to be evaluated can be specified as an optional parameter:
`javascript
autotuner.bayesianOptimization('accuracy', 'ei', true, 0.8);
`
In the example above the optimizytion stops after 80% of the domain ponits have been evaluated. By default this value is set to 0.75.
$3
The best hyperparameters found in the optimization run can be evaluated on the test set. Specify the objective and wheter or not to use cross validation.
`javascript
autotuner.evaluateBestParameter('error', true);
`$3
An example usage can be found here:
`bash
tets/runExampleAutotuner.ts
`
Development
Pull and initialize:
`bash
git clone https://github.com/piximi/autotuner.git
cd autotuner
npm install
`To run tests:
`bash
npm run test
npm run runExampleAutotuner
`To compile the code and check for type errors:
`bash
npm run build
``