之前在Coursera上看了Andrew(吴恩达)的DeepLearning相关课程 https://www.coursera.org/specializations/deep-learning 。用了接近两个月的时间看完视频做了作业,但是感觉理解的还是相当肤浅,于是决定使用C++来尝试着实现一个神经网络。一方面加深理解,另一方面也扩充一下自己很多方面的开发能力(Git,XCode,多线程,Qt等。。。)
XCode的Library工程提交到 https://github.com/Millieen/TestNeuronNetwork 上了。目前还是个空工程,之后慢慢更新~
这个Lib的目标是:
· 能够建立一个任意层、每层神经元个数任意的前馈神经网络。
· 激活函数包括ReLU和Sigmoid
· 使用多线程完成矩阵乘法运算。使用的线程个数可配置并能够查看相应的性能变化。
· 矩阵乘法可通过配置,扩展成CUDA加速的方式。
最基本的库完成后,会用Qt做一个配套的界面工程,来实现以上参数的可视化配置。
XCode下写Library挺坑的。工程配置好了,编译出了动态库,但是测试程序那边却无法正常连接更新后的dylib库,重新编译加函数之后,测试那边就总是报link error,看上去就是没有更新dylib的锅。
检查了一下报错信息,果然在 /Users/Millieen/Library/Developer/Xcode/DerivedData/testSNN-gsnjuxvmaggedqahtvdcmrpeqiej/Build/Products/Debug/下找到了之前没有更新的库,删除之,重新编译后成功了。暂时还没有搞清楚怎么自动替换这个库,以后更新库的时候先手动替换吧。