Releases: feranick/SpectralMachine
Releases · feranick/SpectralMachine
20201124a
Changelog:
- SpectraKeras
- Use TF2.x conversion for model quantization. So far, float support in TF 2.x was missing, so quantization with TF 2.x was done with the v1 compatibility layer. TF 2.3 adds support for float, making the v2 conversion the default. TF 2.3 is needed.
20200709a
20200225a
Changelog:
- SpectraKeras
- Added support for Coral Edge TPU for MacOS and Linux
- Redesigned quantization routine for TFlite making use of eager execution. Faster conversion to tflite.
- Fixed several issues related to conversion to quantized models for tflite, leading to unreliable predictions.
- Added new accuracy determination option: Calculates the average accuracy for a test file formatted as the validation file. Useful for comparison of different models
- Rate of success in batch predictions is shown at the end of the prediction run.
- Several bug fixes, in particular:
- Inference with tflite
- Visualization of weights and activations.
- Compatibility with newest versions of libraries
- SpectraLearnPredict2
- The software is officially discontinued. It is largely superseded by SpectraKeras. Only minor bug fixes will be applied mainly to maintain compatibility with frameworks.
- Utilities
InfoLimitedDatasets
andRemoveLimitedDatasets
: Major restructuring, correctly deals with non integer classes. Much, much faster.AddRelativeHorNoisyData.py
,AddVerticalOffset.py
: much faster performance.CheckData.py
: Improved compatibility with h5 files.InfoDatasets.py
: Simplified and optimized.- Removed irrelevant files:
LoadBinary.py
20200121a
Changelog:
-
SpectraKeras
- Simplified recognition of definition of callback metrics for TF 1.x vs 2.x
- List both train/validation tests at the end of the log
- Fixed minor issue with CUDNN while using TF 1.15.
- Training uses only necessary memory in GPU, rather than full, TF2.x
-
Utilities
- RandomCrossValidMaker: much improved performance (several order of magnitude).
- SLURM submission scripts: updated to work with latest SLURM.
20191029a
Changelog:
- SpectraKeras
- Removed support for external Keras (now built-in TF)
- Improved support for TF 2.0
- Added support for TensorFlow Lite:
- Inference can be done:
-- Using standard TensorFlow
-- Using TensorFlow Lite runtime
-- Using TensorFlow Lite runtime through Coral Edge TPU - Batch conversion allow for specifying the folder where the prediction files are located
- Code consolidation: Common methods between
SpectraKeras_CNN
andSpectraKeras_MLP
are now placed inlibSpectraKeras
. - Several improvements and bug fixes
- Utilities
- ReadRruff can now handle batch and single file conversion and specific folder for output
21091022a
Changelog:
SpectraKeras and SpectraLearnPredict2:
* Added support for TensorFlow 2.0. SpectraKeras and SLP2 automatically readjust the APIs based on the installed version. Going forward, when TF 2.0 is released, support for older TF 1.x APIs will be deprecated. This is the last release with support for TF 1.0
20181231a
Changelog:
- SpectraKeras_CNN:
- Visualization of activations after training of the first convolutional layer.
- Visualization of activation in prediction for all layers (including convolution, pooling, dense).
- New command line option (-n) to only visualize neural network summary.
- Warning: the INI File has changed, please update accordingly.
- Utilities:
AddSpectraToLearnFile
: Updated to collect spectra inside folder in bulk. Use "." for the name of the Spectra file.- Rewritten many methods to replace for loops with proper numpy optimization: much faster execution in the following:
AddHorizontalOffset
,NormLearnFile
,AddLinearBackground
,AddRelativeNoisyData
,AddNoisyData
XRange
: Bug fixes. Plot is not displayed, but saved.AddNoisyData
: Bug fixes, offset is in percentageAddRelativeNoisyData
: Rewritten based onAddNoisyData
to allow normalization and consistencyConvertToTFLite
: Convert trained TF models to TensorFlow Lite.ConvertToTFJS
: Convert trained TF models to TensorFlow.js (Requirestensorflowjs
to be installed via pip)
20181207a
Changelog:
- SpectraKeras_MLP and SpectraKeras_CNN:
- SpectraKeras_CNN: Improved design of CNN network design: max_pooling and dropouts can now be defined after each convolution layer. FCL have now their own dropout parameter.
- Warning: the INI File has changed, please update accordingly.
- Show network summary before training and in prediction
- Bug fixes and optimization
20181130a
Changelog:
- SpectraLearnPredict2: New features:
- Keras Regressor: The user can choose through a configuration flag (
regressorKeras
) to carry out regression rather than classification. - Warning:
SpectraLearnPredict2.ini
files created with previous version of SLP2 need to be updated by addingregressorKeras = False
under the section[Keras]
- Keras Regressor: The user can choose through a configuration flag (
- SpectraKeras_MLP and SpectraKeras_CNN: Rebased against the stable version of DataML. New features:
- Keras Regressor : The user can choose through a configuration flag (
regressor
) to carry out regression rather than classification. - When used as regressor, scores with
loss
andmae
are tracked. - Spectral normalization (y with values between 0,1)
- Automatic spectral range rescaling during prediction, when prediction spectra have different range than those in the training dataset.
- New batch evaluation mode: evaluation against a test dataset allows for rapid tracking of loss or accuracy. Results are tracked in
*-summary.csv
files. - Predictions are listed with all possibilities not just the more likely.
SpectraKeras_CNN
: fixed bugs in handling files for predictions.- Warning:
SpectraKeras_MLP.ini
andSpectraKeras_CNN.ini
INI files created with previous version of SpectraKeras need to be updated by addingregressor = False
andnormalize = False
under the section[Parameters]
- libSpectraKeras: New library for
SpectraKeras
with relevant classes that can be used withinSpectraKeras
or to write custom Data Makers forSpectraKeras
. - New classes:
Normalizer
class: normalize data between 0,1NormalizeLabel
class: normalize label when creating training files with existing or new data makersCustomRound
class: Create custom set of normalized labels
- Keras Regressor : The user can choose through a configuration flag (
- New utilities
RemoveColumn.py
Removes a single column from the training set (as specified on command line)InfoDatasets.py
Provides information on training datasetsLabelFinder
Find label corresponding to a predicted class from learning info file
- Bug fixes across the board, including K-means and SVM in SLP2.
20181023a
Changelog:
- SpectraLearnMachine v.1 is no longer under active development and it is superseded by SLP2
- SpectraLearnMachine Bug fixes:
- Fixed prediction crash due to misuse of sklearn.labelEncoder inverse_transform (both for
dnntf
andkeras
) - In
dnntf
, checkpoint folder is now correctly saved inside the working folder.
- Fixed prediction crash due to misuse of sklearn.labelEncoder inverse_transform (both for
- SpectraKeras: Major rewrite for both MLP and CNN. Features:
- Each
SpectraKeras_MLP
andSpectraKeras_CNN
can be installed system-wide through a wheel package. - Use INI config file, rather than rely on internal parameters
- SpectraKeras can do prediction in addition to training. New flags (
-t
and-p
at runtime) - Validation during training can be done using automatic cross-validation from training file or using external file
- Each
- Updated Utilities:
AddLinearbackground.py
Added randomization of slope and normalization. Improved background addition algorithm.