Skip to content

Conversation

@jvanecek
Copy link

This PR introduces a Keras-style high-level API for defining, training, and evaluating neural network models in Pharo, built on top of the existing TensorFlow C++ bindings.

Main Additions:

  • TensorFlowComputation: unified execution context and graph/session management
  • Math operations: higher-level tensor ops
  • Model & Layers: sequential model API, dense layers, and extensible abstractions
  • Training: training loop, loss/metric handling, and update routines
  • Optimizers: Adam, RMSProp, SGD, and a flexible optimizer framework
  • Datasets: CSV, text, random, and batch dataset pipelines

Summary:
This contribution provides a more idiomatic and concise way to work with neural networks in Pharo, enabling rapid model experimentation with a clean, expressive API as in Keras.

jvanecek added 30 commits April 1, 2021 09:21
rename classes to remove the underscore in the names
fix references to old class names. move deprecated protocol to new package
Update TensorFlow to 2.3.1
Reify the tensor shape into a first order object
make TFDataTypeEnum more portable
Rename packages and separate tests from model
Pull down MNISTFile class variables
Add missing messages in order to tests run green
delete file


Delete MNISTFile duplicated class variables

Add missing messages in MNISTFile
+ the new model of optimizers, trainer and neural network models
Add a simple visualizer of a training summary
Add an experimental dataset provider
Add TensorFlowEnvironmentModel package and VAST-Compatibility-Model
Add TensorFlowEnvironmentModelTests 
Add VAST compatibility messages
Add some missing classes and messages
Update DatasetProvider and add MLTrainingLaboratoryModel
and delete vast specific objects
Move classes in MLNeuralNetworkModel and tests to LibTensorFlowExamplesApp
Initialize the MNIST classes on load
Ensure dataset folder existance
Improve error handling on MNIST dataset downloading
Change the source of the MNIST dataset as is constantly unavailable
make integer scalar reciprocal test deterministic
update deprecated CI configuration
because in Pharo 9 is not the default callout API class and it doesn't work
move test assertion messages to core apps
jvanecek and others added 28 commits March 28, 2024 12:40
@Ducasse
Copy link

Ducasse commented Dec 14, 2025

Thanks this is great!

@SergeStinckwich
Copy link
Member

Thank you, this is great. I will have a look ASAP.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants