首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C+实现神经网络系列预告

由来

自己动手写一个最简单的BP神经网络练练手的想法由来已久,结果由于能力有限,不光是编程能力还有理论方面的能力都有限,一直推了好久才真正的开始。

其实很多坑必须要自己亲自踩过之后才能明白。在我看来,我现在这个过程就是在踩坑的过程。在不断犯错和改错中提高。在这里记录下自己的踩坑过程。

依赖

项目中用到的除了标准库就是OpenCV的core模块。毕竟还是对opencv最熟悉,而且神经网络中最多的就是矩阵运算,而opencv的Mat类确实灰常强大。放着不用简直浪费。

简介

这是一个练手性质的小项目,而且重复造轮子,目的是为了加深自己对于神经网络的理解,以及提升自己的调参技巧和编程能力。

我是一边学习理论和编程技术,一边写程序就我现在写出来的内容来说,已经不止三层的BP神经网络了,理论上是可以有N层的。只是随着层数的加深训练时候不可避免地会出现一些“梯度弥散”之类的现象。

大家都说MNIST手写数字识别是神经网络领域的Hello World,我也不例外,第一个测试的例子还是用的手写数字识别。在用一千样本(800训练,200测试,用这么少的原因是自己的地电脑太low了)的测试中,正确率85%左右,增加训练样本可以增加正确率。作为对比,TensorFlow官方教程中,如果我没记错的话,动用CNN之前是92%左右的正确率,用的是全部的MNIST数据。

如果有入门比我还晚的人能从中学到一些东西,不胜欣喜。如果有哪位大神偶然路过,能指点一二,简直是再好不过了。

代码片段

先放一段代码试一下新编辑器的代码显示效果。

源码链接

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171228G0839S00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券