The purpose of the DeepPhysX framework is to provide an highly customizable interface between Deep Learning (DL) algorithms and numerical simulations.
- 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.
- Automatic synthectic data storage and loading (with integrated shuffle and normalization);
- Multiple dataset modes: Training, Validation, Prediction;
- Customizable dataset fields names and number.
- 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.
- 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).