Project Description
The purpose of the DeepPhysX framework is to provide an highly customizable interface between Deep Learning (DL) algorithms and numerical simulations.
This full Python3 project brings several pipelines, allowing users to:
- Generate a dataset with synthetic data from numerical simulations;
- Train an artificial neural network with a synthetic dataset;
- Use the predictions of a trained network to drive a numerical simulation.
DeepPhysX provides a Core package with no dependency on any simulation or AI framework. Then, other packages are compatible with this Core and a specific simulation or AI framework. Thus, DeepPhysX was mainly designed for SOFA (DeepPhysX.Sofa) and PyTorch (DeepPhysX.Torch) frameworks, but other simulation and AI frameworks can also be used.
A readthedoc documentation is provided with the project.
Features
Dataset components:
- Automatic synthectic data storage and loading (with integrated shuffle and normalization);
- Multiple dataset modes: Training, Validation, Prediction;
- Customizable dataset fields names and number.
Simulation components:
- Data generation achieved by several simulations running in multiprocessing with a client-server architecture;
- Increased interactions with other components (dataset, neural network, visualizer);
- Check the validity of the training data.
Learning components:
- Automatic storage and loading of neural networks during training;
- Customizable data transformations at each step (forward pass, optimization, prediction apply);
- Customizable optimization process;
- Already implemented architectures: FC, UNet.
Additional tools are also provided:
- A visualization Factory to init, update and render the simulated objects (written with Vedo);
- An customizable analysis of the evolution of the training session (written with Tensorboard).
Related publication
DeepPhysics: a physics aware deep learning framework for real-time simulation
Comments are closed.