-3

I have already built a deep neural network image classifier program in Matlab (gives 1 output for each example, such as is it a car or not), using gradient descent and back propagation algorithms. It is a simple feed forward network, with 1 or 2 hidden layers. I'm using the obtained weights in a nvcc C++ for real time object detection.

NN training results have quite a good accuracy (more than %99.9, but not enough), and can process more than 100,000 image files of size 32x32. But only problem with the Matlab code is: it ends up in local minimums in each training, so requires many different trainings but its training speed is quite slow.

Other than my slowly working Matlab NN training code, I have tried:

1) OpenCV 3.0.0, it "probably" has a bug in virtual float cv::ml::StatModel::predict function at the moment. So I weren't able to use it properly.

2) Tried OpenNN with gui, but it even gets stuck during loading and training. I'm still working on to fix that.

3) Checked FANN, but could only find "one" tutorial code written in C++. May take quite a time for me to master it with out examples.

4) I had tried Theano in Python a few months ago, it was quite customizable, and has quite many tutorials. But had never tried training image files with it.

5) I can also transfer my Matlab code to nvcc C++, and try conjugate gradients method to speed up further. But didn't try this yet, it is the last choice for me.

Mastering in each path may take quite a big time, and I have many more different works to do too. Which path should I take, or do you have another suggestion? Thank you

user4157124
  • 2,809
  • 13
  • 27
  • 42
SoajanII
  • 323
  • 5
  • 19
  • 2
    If anyone knew what is the best path, he would probably be rich and famous. Maybe try to read some scientific papers and choose the method that suits you best? As far as I know, the state of the art results are achieved by neocognitrons with some sophisticated training techniques. – Estiny Sep 20 '15 at 12:49
  • I probably expressed my problem a bit wrong. I'm looking for a nn training program which is able to handle many image files efficiently during training. Thanks, Mikael Rousson gave quite a good tip. – SoajanII Sep 20 '15 at 14:19

1 Answers1

1

If you have experience with Matlab, the easiest path is to go through the "VGG Convolutional Neural Networks Practical" and use their open source MatConvNet toolbox for Matlab: http://www.vlfeat.org/matconvnet/.

Mikael Rousson
  • 2,247
  • 1
  • 15
  • 16