Commit ca499c9
committed
Merge branch 'release-v0.94'
v0.94
Support for new training algorithms:
- Back-Propagation Through Time (BPTT)
-- Recurrent Neural Networks (RNN)
-- Long Short-Term Memories (LSTM)
- Generative Adversarial Networks (GAN)
- Variational autoencoders
- Convolutional autoencoders
- Fine tuning of pretrained networks
-- Flexible weight freezing
- Context-prediction network (Siamese network)
- Livermore Tournament Fast Batch learning (LTFB)
- Variable mini-batch sizes
Support for new network structures
- Directed Acyclic Graph (DAG) networks
- Residual networks
- Modular and composable objective functions
- Multiple metrics
- Shared weight matrices
- (BETA) New evaluation layer that is attach to any point of DAG
- Motifs (compound, reused network patterns)
Support for new layers:
- Learning:
- Deconvolution
- Metrics:
-- Top K Categorical accuracy, Pearson correlation, Mean absolute deviation
- Loss Functions:
-- Cross Entropy with Uncertainty, Geometric negative log likelihood
-- Poisson Negative log likelihood, Polya Negative Log Likelihood
- Optimizers:
-- Hypergradient Adam
- Transform Layers:
-- Contatenation, Noise, Unpooling, Pooling, Reshape, Slice, Split, Sum
- Regularizer:
-- Batch Normalization, Selu Dropout, Local Response Normalization (LRN)
- Activations:
-- Leaky Relu, Smooth Relu, Elu, Scaled Elu, Softplus, Atan,
-- Bent Identity, Exponential
Performance optimizations:
- GPU acceleration for most layers
- NCCL 2.X
- Optimized communication patterns
- Asynchronous weight updates
- Asynchronous metric and objective function updates
- batch normalization (global and local)
- L2 normalization
- Adaptive Quantization (inter-model)
Model portablility & usability:
- Portable checkpoints / recovery
- Distributed checkpoint / recovery
- Network visualization
- Export LBANN to TensorFlow format
Internals Features:
- Gradient checking
- Network representation using tensor dimensions
- Bamboo continuous integration (CI)
- Improved data processing pipeline
New data readers:
- Numpy
- CSV
- Methods for merging multiple features and samples across files
- CANDLE Pilot 2
- CANDLE Pilot 1 Combo
- ICF JAG
Integration with Hydrogen, an optimized distributed, dense linear algebra
library. Hydrogen is a fork of the Elemental library. Hydrogen optimizes for:
distributed matrices with elemental and block distributions, BLAS, LAPACK,
distributed and local matrix management.
Integration with optimized all-reduce communication library Aluminum. Aluminum
provides custom reduction patterns, customized CUDA reduction kernels,
and asynchronous communication operators. It uses MPI, MPI w/GPUdirect, or NCCL
as back-end libraries. Aluminum enables us to effectively use non-blocking
all-reduces during backprop/optimization
Addtionally, we have added support for an online, distributed data store. When
enabled, LBANN is able to ingest all of the training data set in a distributed
method across all ranks. Each data store is then able to serve it's portion of
a mini-batch, dynamically moving data to the necessary ranks in the model (based
on the mini-batch data distribution).874 files changed
Lines changed: 91100 additions & 38040 deletions
File tree
- bamboo
- common_python
- compiler_tests
- builds
- error
- output
- integration_tests
- error
- expected_values
- catalyst
- clang4
- gcc4
- gcc7
- intel18
- ray/gcc4
- surface/gcc4
- output
- unit_tests
- prototext
- cmake
- configure_files
- modules
- containers
- doc
- experiments
- external
- OpenBLAS
- old
- TBinf
- include
- lbann
- callbacks
- data_distributions
- data_readers
- patchworks
- data_store
- io
- data_buffers
- layers
- activations
- io
- input
- target
- learning
- regularizers
- transform
- metrics
- models
- objective_functions
- loss_functions
- weight_regularization
- optimizers
- proto
- utils
- weights
- model_zoo
- data_readers
- CANDLE
- pilot2
- historical
- models
- alexnet
- autoencoder_candle_pilot1
- autoencoder_cifar10
- autoencoder_imagenet
- autoencoder_mnist
- candle/pilot1
- char_rnn
- gan/mnist
- greedy_layerwise_autoencoder_mnist
- imagenet
- jag
- lenet_mnist
- molecular_autoencoder_candle_pilot2
- python
- resnet50
- siamese
- finetune-cub
- siamese_alexnet
- triplet
- simple_mnist
- optimizers
- prototext
- tests
- scripts
- plotting
- spack_recipes
- src
- callbacks
- data_readers
- patchworks
- data_store
- io
- data_buffers
- layers
- activations
- learning
- regularizers
- metrics
- models
- objective_functions
- loss_functions
- weight_regularization
- optimizers
- proto
- factories
- utils
- weights
- superbuild
- aluminum
- cmake/modules
- cnpy
- cub
- elemental
- hydrogen
- jpeg-turbo
- lbann
- openblas
- opencv
- protobuf
- tests
- test_img_pipeline
- test_patchworks
- test_stack_tracing
- tools
- compute_mean
- lbann
- utils
- sample
- imagenet-trainset
- viz
- examples
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
8 | 13 | | |
9 | 14 | | |
| 15 | + | |
0 commit comments