Introduction to the Python API for NeurEco Discrete Dynamic#

The Python API is compatible with python 3.x.
It provides all the GUI’s features and more.

Note

The GUI functionality Export NeurEco to Python , see Export Discrete Dynamic from the GUI to the Python API, facilitates the initial transition from the usage of NeurEco with the GUI to its usage with the Python API.

Two options are available for installing the python API:

  • Via the NeurEco GUI: Click on Python drop-list in the GUI and select Install NeurEco package to python. A window containing all the python environments found on the machine will appear. Select the environment to add NeurEco wrapper to it, and click on Install package. This will automatically install the python API for the chosen distribution.

    NeurEco GUI main window
  • Via the installation scripts: run the Install.py script that comes with the Python package (this will install it in the environment used to run the installation script).

Note

  • The Python API uses numpy Python library. Make sure it is installed in the used environment.

To work with the Discrete Dynamic NeurEco models in Python, import NeurEcoDynamic library:

from NeurEco import NeurEcoDynamic as Dynamic

To initialize a NeurEco model to handle the Discret Dynamic problem:

model= Dynamic.DiscreteDynamic()

All the methods provided by the DiscreteDynamic class, can be viewed by calling the __method__ attributes:

print(model.__methods__)
**** NeurEco Dynamic DiscreteDynamic methods: ****
- load
- save
- delete
- evaluate
- build
- get_input_count
- get_output_count
- load_model_from_checkpoint
- get_number_of_networks_from_checkpoint
- get_weights
- export_fmu
- compute_error

To understand what each parameter of any method does and how to use it print the doc of the method, for example:

print(model.export_fmu.__doc__)
exports a neureco model to FMU (Functional Mock-up Interface)
:param fmu_path: string : path where to save the fmu file
:return: export_status: int: 0 if export is successful, other int if no