基于CUDA的BP神经网络

darkstorm2111203 2008-04-03 10:56:39
这两天用CUDA写了一个BP神经网络,主要用的CUBLAS,自己也写了几个KERNEL,效果不错,辨识率和CPU差不多,速度比MATLAB快了十倍
...全文
667 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkstorm2111203 2010-08-31
  • 打赏
  • 举报
回复
两年前的帖都挖出来了
wpfcpp 2010-08-23
  • 打赏
  • 举报
回复
MATLAB本来就慢,把M文件用C改写,在cpu上运行,立刻快几倍
zqj08 2010-06-30
  • 打赏
  • 举报
回复
分享成功经验还是?。。
IO_X 2008-09-27
  • 打赏
  • 举报
回复
和native C/C++比较一下就能说明问题了
iorikingdom 2008-06-29
  • 打赏
  • 举报
回复
楼主的gpu是那个型号?
matlab是mex还是脚本?如果是脚本的话解析运行,还是不能够说明问题的
kenan1014 2008-05-08
  • 打赏
  • 举报
回复
10倍是一个明显的进步~~~~
OpenHero 2008-04-14
  • 打赏
  • 举报
回复
不错的应用
darkstorm2111203 2008-04-04
  • 打赏
  • 举报
回复
这么说....gpu上和cpu上用一样的数据,一样的参数,一样的算法非常严格的编了一样的神经网络识别程序
然后用一模一样的数据进行了训练10000次,gpu用了1.7s,cpu跑对应matalab程序用了17s
需要说明的是,在一定范围内增加gpu处理的问题尺寸时间不会增加(blockdim.x是16,现在只用到3),实际gpu比cpu加速比要大于10
我还不会用cublas做matlab程序,所以直接写的runtime程序
最后做出来的cpu权向量和gpu权向量一点都不像...但是用cpu和gpu的结果分别对新的样本进行分类,结果差不多
其中一个算例:cpu正确识别率接近97%,gpu正确识别率96%出头。
个人感觉gpu做神经网络比较合适,用同样的样本迭代可以弥补精度不足的缺点。

比起之前进行的对矩阵进行反复迭代的某运算出来的结果要令人满意一些...
qiang125 2008-04-03
  • 打赏
  • 举报
回复
有点看不懂楼主说的什么?什么叫辨识率和CPU差不多?
【资源说明】 1、基于BP神经网络的自动驾驶模型车,包含收集数据、控制模型生成与在线离线自动运行源码+说明.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于BP神经网络的自动驾驶模型车,包含收集数据、控制模型生成与在线离线自动运行源码+说明.zip # TensorRider 自动驾驶车 ![](pics/TensorRider.jpg) TensorRider是一种基于BP神经网络,对驾驶场景具有学习能力的的简易自动驾驶车模型。目前,TensorRider仅能实现基本的车道保持功能,即在学习了操作者的遥控驾驶行为后,根据经验对类似的场景做出自动驾驶行为。 TensorRider使用Google TensorFlow作为算法框架,可以在CPU或支持CUDA的NVIDIA GPU上进行训练。 完成训练后,可以使用一台计算机(Linux,macOS或Windows)作为TensorRider的计算服务器,令实验小车在线运行,也可以通过在TensorRider的Raspberry Pi上连接Intel Movidius Neural Compute Stick(NCS),实现离线运行。 # 硬件需求 * TensorRider自动驾驶车模型,包括Raspberry Pi,摄像头,电机驱动电路等 * 运行Linux,Apple macOS 10.12+或Microsoft Windows 7+的计算机 * 带有模拟摇杆的游戏控制器(手柄) * (非必需)兼容CUDA的NVIDIA GPU,Intel Movidius NCS * 连接质量良好的无线局域网 # 使用方法 TensorRider实现基于学习的自动驾驶分为3个阶段:收集数据,建立模型和自动运行。 ## 1.收集数据 在这一步骤中,车辆模型在人工指引下,边行驶边记录摄像头拍摄的图像,同时记录下拍摄图像时车辆模型的转向角度。当收集了足够多的图像-转向角度数据后,即可以这些数据为依据,训练神经网络。 我们假设你已经在计算机上安装好了```Python3```和```Jupyter Notebook```。首先在计算机端安装依赖的python软件包。 ``` pip3 install pygame ``` *注:我们假设你已掌握使用pip安装软件包的方法,以及在虚拟环境中安装软件包的方法。例如根据你使用的python环境的不同,你可能需要使用conda install或pip install。* 目录```Step_1_Data_Collection```内包含进行数据采集所需的程序。先使用SFTP或NFS等方式,将```copy_to_rpi```目录中的文件传输至实验小车端的Raspberry Pi上。在Raspberry Pi上连接一个使用FAT32文件系统的USB闪存盘,并启动Raspberry Pi。 使用SSH登录Raspberry Pi,建立USB闪存盘的挂载点 ``` sudo mkdir /mnt/pdisk ``` 然后运行 ``` sudo mount -o uid=pi,gid=pi /dev/sda1 /mnt/pdisk/ ``` 挂载USB闪存盘。 *你也可以选择将数据存储在Raspberry Pi的SD卡,甚至内存文件系统中。但是比起使用网络传输采集的大量文件,使用USB闪存盘拷贝是更加快速的方式。如果你希望变更文件的存储位置,可在```rpi.py```的第161--163行中更改。* 挂载完成后运行```rpi.py```。如果实验小车上安装了状态指示灯,在接收到控制数据之前,红色指示灯每3秒闪烁一次。接着,在计算机上,在```transmitter.py```的第9行写入小车的局域网IP地址,然后运行```transmitter.py```。你将看到终端持续打印出读取到的手柄数据。如果与实验小车的连接正常,小车上的指示灯将转为绿色闪烁。 向前轻推控制器的左侧手柄,实验小车开始加速行驶,向后拉左侧手柄可使小车减速。向左、右方向推动右侧手柄,可使实验小车转向。若需要急停,可同时按下```L2```+```R2```键,实验小车立即停车。 熟悉实验小车的操控方法后,可在适当的时机按下```START```键,实验小车开始收集行驶数据。再按一次```START```停止收集数据。 *数据收集建议至少持续30min。在收集数据时,需要使用较慢的恒定速度行驶,因为小车的转弯半径与速度相关。可以同时按下`

353

社区成员

发帖
与我相关
我的任务
社区描述
CUDA高性能计算讨论
社区管理员
  • CUDA高性能计算讨论社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧