如何用c++在mnist上實現一個簡單的卷積神經網路,有哪些參考資料?
rt,想用c++實現一個簡單的卷積神經網路,目前能找到的代碼都是matlab的,主要想通過實現理解一下卷積,pooling,backpropagation的實現方式。
1.Caffe workshop 材料, Lecture 3重點看看。http://courses.cs.tau.ac.il/Caffe_workshop/Bootcamp/pdf_lectures/
2.Notes on Convolutional Neural Networks,怎麼計算都有。
http://cogprints.org/5869/1/cnn_tutorial.pdf3.還是關於如何求導,需翻牆,不過slideshare的app是不用翻也可以看的。http://www.slideshare.net/kuwajima/cnnbp4.上面重點關注的CNN特特殊層的求導問題,經典的層以及損失函數可見PRML第5章。
5.github上有個簡潔的純C++實現 nyanp/tiny-cnn · GitHub 代碼我沒看過,不過似乎和問題的要求比較相似,可供參考。從應用的角度看BVLC/caffe · GitHub等之類的框架的代碼更實用,其代碼文檔中有演算法的說明結合代碼看很不錯Caffe: Class List。6.既然想動手寫一個,挺不錯的,完全弄明白後看其他的框架的實現代碼應該很容易了。補充,用過樓上建議的nyanp/tiny-cnn · GitHub和BVLC/caffe · GitHub。看過tiny-cnn的源碼,對於理解單純的CNN實現,個人覺得tiny-cnn更精簡一些,3000行純C++11的實現,例子里包含了幾種經典的NN結構,自帶mnist的demo。作者也比較nice,樂於解答問題。
自己用matlab實現了一個,先實現一層的,然後兩層的,然後任意層的github:一層:sunshineatnoon/Single-Layer-CNN-on-MNIST · GitHub二層:sunshineatnoon/Two-Layer-CNN-on-MNIST · GitHub任意層:sunshineatnoon/Convolutional-Neural-Network · GitHub
blog:【Deep Learning】CNN的MATLAB實現
歡迎交流和指正~看了看已給的答案,我給你些鏈接吧,全是純C++的版本,eblearn是Yann lecun維護的,現在已不在維護了
http://www.codeproject.com/Articles/16650/Neural-Network-for-Recognition-of-Handwritten-Digi
http://www.codeproject.com/Articles/140631/Convolutional-Neural-Network-MNIST-Workbench
http://conv-net.sourceforge.net/doc/
http://www.convolutional.net/doku.php?id=software
http://eblearn.sourceforge.net/Andrew Ng的教程
正在斷斷續續的寫,歡迎監督(怕半路寫不下去了)。。。
GitHub - xylcbd/EasyCNN
UPDATE:完工了。
題主最後寫出來了嗎?
使用Caffe挺好的---- 配置文件很容易編寫,只要準備了數據就可以訓練,同時指出CPU和GPU兩種mode已經有挺多的model可以直接參考使用
推薦閱讀:
※如何看待《Deep Learning without Poor Local Minima》?
※RBF神經網路和BP神經網路有什麼區別?
※卷積神經網路和深度神經網路的區別是什麼?
※神經網路中激活函數的真正意義?一個激活函數需要具有哪些必要的屬性?還有哪些屬性是好的屬性但不必要的?
※在眾多的神經網路框架如chainer, caffe, torch,mxnet等之間如何做選擇?
TAG:C | 神經網路 | 深度學習DeepLearning |