# NeuralNetwork

`class boulderopal.closed_loop.NeuralNetwork(bounds, seed=None)`

The neural network optimizer.

### Parameters

**bounds**(*Bounds*) – The bounds on the test points.**seed**(*int**or**None**,**optional*) – Seed for the random number generator used in the optimizer. If set, must be a non-negative integer. Use this option to generate deterministic results from the optimizer.

## Notes

The neural network optimizer builds and trains a neural network to fit the cost landscape with the data it receives. Then a set of test points are returned, which minimize the neural network’s fitted cost landscape. A gradient based optimizer is used to minimize this landscape, with the points starting from different random initial values.

This method is recommended when you can provide a large amount of data about your system.

The network architecture used by this optimizer is chosen for its good performance on a variety of quantum control tasks.

For best results, you should pass an array of initial_parameters evenly sampled over the whole parameter space.