分别用CUDA和JAVA制作两个三层的n*m*k的神经网络,使输入一致,目标函数一致,迭代次数一致,通过调节节点数量测量时间比较这两个网络到底哪个快。

网络的输入节点的初始化方式为

for(inta=0 ;a<n ;a++)

{

x[a]=(double)a/(n);

}

目标函数y[0]=1;y[1]=0;

权重都初始化为0.1,用随机梯度下降,不用偏置

迭代次数都是100次。

得到表格

节点数量 网络结构 迭代次数 java用时 y[0] y[1] CUDA用时 y[0] y[1] java用时/CUDA用时 java速度/CUDA速度
600 3*100*2 100 47 0.9999999960729808 2.048728729816881E-211  657 0.9999999960729809   0 0.071537291 13.9787234
3000 3*500*2 100 62 0.9999999999505671 0 641 0.9999999999505671 0 0.096723869 10.33870968
20000 100*100*2 100 62 0.9999917229035667  0 751 0.9999917229035668 0 0.082556591 12.11290323
400000 1000*200*2 100 296 0.9999999979392669 0 1532 0.9999999979392669 0 0.193211488 5.175675676
2400000 4000*300*2 100 2532 0.9999999999999065 0 6958 0.9999999999999065 0 0.363897672 2.748025276
   
24000000 4000*3000*2 100 56305 1 0 74692 1 0 0.753829058 1.326560696
24000000 4000*3000*2 100 56415 1 0 74317 1 0 0.759112989 1.317326952
   
40000000 5000*4000*2 100 97646 1 0 128027 1 0 0.762698493 1.311134097
40000000 5000*4000*2 100 97531 1 0 127416 1 0 0.765453318 1.306415396
40000000 5000*4000*2 100 96139 1 0 127592 1 0 0.753487679 1.327161714

比如第一组网络结构3*100*2共600个节点,迭代次数100次,java用时47ms,cuda用时657ms,

java第100次y[0]= 0.9999999960729808 ;y[1]=0

Cuda第100次y[0]= 0.9999999960729809 ;y[1]=0

最后一位小数不一致时因为四舍五入规则造成的。

当节点数量超过240万以后经过100次迭代输出已经都是1和0,已经没有区分度只是用来测量速度。

从表格看出来当节点数量只有600个时候java的速度甚至是cuda的13.9倍,很意外的是即便节点数量有4000万个java的速度依然是cuda 的1.32倍。

GPU神经网络和JAVA神经网络速度对比相关推荐

  1. 外接gpu 训练神经网络,显卡训练神经网络

    为什么要用GPU来训练神经网络而不是CPU? 许多现代神经网络的实现基于GPU,GPU最初是为图形应用而开发的专用硬件组件.所以神经网络收益于游戏产业的发展. 中央处理器(centralprocess ...

  2. 主流的神经网络的框架,神经网络设计与实现

    什么叫做深度学习框架,其作用是什么 深度学习框架是一种为了深度学习开发而生的工具,库和预训练模型等资源的总和.有了这种框架,看似复杂神秘的深度学习模型开发被大大简化,成为AI开发者的必用利器. 目前, ...

  3. python实现简单的神经网络,python实现神经网络算法

    如何用9行Python代码编写一个简易神经网络 学习人工智能时,我给自己定了一个目标--用Python写一个简单的神经网络.为了确保真得理解它,我要求自己不使用任何神经网络库,从头写起.多亏了Andr ...

  4. 【卷积神经网络】卷积神经网络(Convolutional Neural Networks, CNN)基础

    卷积神经网络(Convolutional Neural Networks, CNN),是一种 针对图像 的特殊的 神经网络. 卷积神经网络概述 Why not DNN? 图像数据的维数很高,比如 1, ...

  5. 人工神经网络 人工智能,人工智能神经网络技术

    网上说的深度学习,人工智能具体是什么东西呢? . 深度学习:将"低层"特征表示转化为"高层"特征表示后,用"简单模型"即可完成复杂的分类等学 ...

  6. bp神经网络和cnn神经网络,bp神经网络与cnn区别

    深度学习与神经网络有什么区别 深度学习与神经网络关系2017-01-10最近开始学习深度学习,基本上都是zouxy09博主的文章,写的蛮好,很全面,也会根据自己的思路,做下删减,细化. 五.Deep ...

  7. 神经网络和深度神经网络,深度神经网络类型包括

    有哪些深度神经网络模型? 目前经常使用的深度神经网络模型主要有卷积神经网络(CNN) .递归神经网络(RNN).深信度网络(DBN) .深度自动编码器(AutoEncoder) 和生成对抗网络(GAN ...

  8. 神经网络和深度神经网络,图神经网络和神经网络

    神经网络与深度神经网络有什么区别 谷歌人工智能写作项目:神经网络伪原创 深度学习与神经网络有什么区别 找深度学习和神经网络的不同点,其实主要的就是:原来多层神经网络做的步骤是:特征映射到值好文案.特征 ...

  9. 神经网络和图神经网络,神经网络的图怎么画

    神经网络(深度学习)的几个基础概念 从广义上说深度学习的网络结构也是多层神经网络的一种.传统意义上的多层神经网络是只有输入层.隐藏层.输出层.其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底 ...

最新文章

  1. java 判断时间合法_java 中 Date 类型快判断日期是否合法.
  2. leetcode算法题--最大整除子集
  3. python中find函数忽略大小写_python字符串(大小写、判断、查找、分割、拼接、裁剪、替换、格式化)...
  4. 用函数fopen_s打开数据文件
  5. SLF4J:Failed to load class org.slf4j.impl.StaticLoggerBinder
  6. 一位老工程师的忠告,切记!
  7. SVD 与 PCA 的直观解释(1): 线性变换
  8. socket编程(十)
  9. python编写命令行框架_使用 Python 和 Click 编写命令行应用程序
  10. 笔记本电脑如何保养_电脑温度一高就“翻脸”,电脑小白该如何解决?学会少花冤枉钱...
  11. Selenium-鼠标操作
  12. SQL SERVER获取数据库文件信息
  13. 计算机应用能力考试湖南成绩查询,湖南计算机等级考试成绩查询入口
  14. 组织的目的是使平凡的人做出不平凡的事 --- 彼得.德鲁克 《卓有成效的管理者》
  15. switch的使用细节
  16. ppt学习06——排版
  17. php cgi.sock 502,nginx中unix:/tmp/php-cgi.sock错误解决解决
  18. python翻译-python实现在线翻译
  19. STM32F1CAN通讯
  20. 生日祝福html_说祝福 | 祝4月的你生日快乐

热门文章

  1. 一个免费的页面素材网站
  2. css3+jQuery制作导航菜单(带动画效果)
  3. SpringCloud2.0入门3-新的eureka依赖
  4. 创建和运行Java项目
  5. 通过反射获取DLL的类实现加载窗体
  6. hibernate和spring学习
  7. 【转】GPS定位原理
  8. R语言数据可视化 ggplot2基础4 位置与坐标系
  9. 图像处理与识别技术的应用
  10. 初次转化max模型为3D Tiles失败、cesium加载一个obj格式的3D 机房模型