mdCNN is a Matlab framework for Convolutional Neural Network (CNN) supporting 1D, 2D and 3D kernels.
Network is Multidimensional, kernels are in 3D and convolution is done in 3D. It is suitable for volumetric input such as CT / MRI / video sections. But can also process 1d/2d images.
Framework supports all the major features such as dropout, padding, stride, max pooling, L2 regularization, momentum, cross entropy, MSE.
The framework Its completely written in Matlab, No dependencies are needed. It is pretty optimized, when training or testing all of the CPU cores are participating using Matlab Built-in Multi-threading.
There are several examples for training a network on MNIST, CIFAR10, 1D CNN, and MNIST3d - a special expansion of MNIST dataset to 3D volumes.
MNIST Demo will download the dataset and start the training process. It will reach 99.2% in several minutes. CIFAR10 demo reaches about 80% but it takes longer to converge.
For 3D volumes there is a demo file that will creates a 3d volume from each digit in MNIST dataset, then starts training on the 28x28x28 samples. It will reach similar accuracy as in the 2d demo
This framework was used in a project classifying Vertebra in a 3D CT images.
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
To run MNIST demo: Go into the folder 'Demo/MNIST' , Run 'demoMnist.m' file. After 15 iterations it will open a GUI where you can test the network performance. In addition layer 1 filters will be shown.
To run MNIST3D demo: Go into the folder 'Demo/MNIST3d' , and run 'demoMnist3D.m' file.
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Check the 'mdCNN documentation.docx' file for more specification on how to configure a network
For general questions regarding network design and training, please use this forum
https://groups.google.com/forum/#!forum/mdcnn-multidimensional-cnn-library-in-matlab
Any other issues you can contact me at hagaygarty@gmail.com
Please use matlab 2014 and above
1