- Addition of validated, PaDEL/alvaDesc-generated YSI databases
- Update to repository links, author information
- ecnet.utils.data_utils now forces UTF-8 encoding for all database creation/saving
- ML back-end updated to TensorFlow 2.0.0
- No API changes to _ecnet.models.mlp.MultilayerPerceptron_
- Existing .h5 model files **will not work** with the updated class
_**Note:** initially, PyTorch was looked at as an alternative; however, after tests to evaluate performance were conducted and the viability of installing PyTorch on high-performance machines available to the ECRL were both deemed inadequate, updating to TensorFlow 2.0.0 was deemed the most appropriate action._
- Only the following hyper-parameters are tuned with the built-in functions:
- **Learning rate** of Adam optimization function
- **Learning rate decay** of Adam optimization function
- **Batch size** during training
- **Patience** (if validating, epochs to wait for better validation loss, else terminate training)
- **Size** of each hidden layer
_**Note:** with the relatively small number of samples our models are trained with, it does not make sense to adjust hyper-parameters such as **beta_1**, **beta_2**, and **epsilon**. The hyper-parameters listed above are theorized to play a much more important role with how the models train/perform._
- Added the UML ECRL's general publication workflow as _ecnet.workflows.ecrl_workflow.create_model_
- If using _ecnet.Server_ and not creating a project, a single model's filename can now be specified as an additional argument (default: _model.h5_)
- TensorFlow's _verbose_ argument is now propagated from _ecnet.Server.train_ to the model during training; added as an additional argument
- _ecnet.models.mlp.MultilayerPerceptron.fit_ now returns a tuple: _(learn losses, validation losses)_; _learn losses_ and _validation losses_ are both lists containing loss values (mean squared error) at every epoch; if training a single model using _ecnet.Server.train_, this tuple is returned; if not performing validation, the _validation losses_ list is populated with _None_ elements equal in size to the _learn losses_ list
- If installing using _setup.py_, installing TensorFlow is optional; to skip the installation of the pre-compiled PyPI distribution of TensorFlow, run _setup.py_ with **python setup.py --omit_tf install**
_**Note:** other methods of installing TensorFlow offer clear benefits (GPU support, different CPU instruction sets, etc.), therefore we want to provide an option for the user to use an existing installation of TensorFlow instead of forcing the PyPI-sourced version._