2016年10月11日

CUDA跑MNIST,加速

摘要: 之前用CUDA写的版本,竟然还不如CPU。 经过好几次的尝试,得到两点经验: 1. CUDA的kernel不需要写得硕大无比。写大了之后,block数和thread数反而不好调整(之前都没有用上block),另外就是会导致数据管理非常复杂。kernel搞成细粒度之后好像也没那么多的影响。 2. 训练 阅读全文

posted @ 2016-10-11 20:40 萝卜头Lee 阅读(472) 评论(0) 推荐(0)

2016年9月28日

简单直接的CUDA改造

摘要: 把前一篇中的MNIST数据识别程序进行了简单的CUDA改造,得到的结果很差,一个epoch从大约5秒变成了50秒。 也可以理解,我把每个操作(比如mul, add)单独拎出来实现,结果由于不知道自己的上下文,就不要不断的 __syncthreads。 不过还是有一些收获,第一次写CUDA程序,最终还 阅读全文

posted @ 2016-09-28 20:58 萝卜头Lee 阅读(1551) 评论(0) 推荐(0)

2016年9月26日

识别MNIST

摘要: 把前面实现的NN用到MNIST数据集上试一把。 改用ReLU激活函数,以及Softmax代价函数。 最后结果是用了100个Epoch,花了8分钟10秒(我的mac本本),train set正确率93+%, test set正确率 92+%。 这个时候就体现了GPU的好处了,我估计要达到同样的效果GP 阅读全文

posted @ 2016-09-26 20:49 萝卜头Lee 阅读(1087) 评论(0) 推荐(0)

得验证一下BP算法是不是正确的

摘要: NG的方法值得一搞, http://deeplearning.stanford.edu/wiki/index.php/Gradient_checking_and_advanced_optimization 简单来说就是为了求 df/dx,一方面可以真的去计算,一方面可以用 df/dx = (f(x+ 阅读全文

posted @ 2016-09-26 12:52 萝卜头Lee 阅读(354) 评论(0) 推荐(0)

2016年9月24日

神经网络快速来一发

摘要: 都觉得神经网络很牛逼,那我们从零来一发吧。 先温习一下NN: http://deeplearning.stanford.edu/wiki/index.php/Neural_Networks 再温习一下BP算法:http://deeplearning.stanford.edu/wiki/index.p 阅读全文

posted @ 2016-09-24 01:41 萝卜头Lee 阅读(498) 评论(0) 推荐(0)

2016年9月23日

Hello world!

摘要: 搞一搞。 阅读全文

posted @ 2016-09-23 20:53 萝卜头Lee 阅读(111) 评论(0) 推荐(0)

导航