GPU神经网络和JAVA神经网络速度对比
分别用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神经网络速度对比相关推荐
- 外接gpu 训练神经网络,显卡训练神经网络
为什么要用GPU来训练神经网络而不是CPU? 许多现代神经网络的实现基于GPU,GPU最初是为图形应用而开发的专用硬件组件.所以神经网络收益于游戏产业的发展. 中央处理器(centralprocess ...
- 主流的神经网络的框架,神经网络设计与实现
什么叫做深度学习框架,其作用是什么 深度学习框架是一种为了深度学习开发而生的工具,库和预训练模型等资源的总和.有了这种框架,看似复杂神秘的深度学习模型开发被大大简化,成为AI开发者的必用利器. 目前, ...
- python实现简单的神经网络,python实现神经网络算法
如何用9行Python代码编写一个简易神经网络 学习人工智能时,我给自己定了一个目标--用Python写一个简单的神经网络.为了确保真得理解它,我要求自己不使用任何神经网络库,从头写起.多亏了Andr ...
- 【卷积神经网络】卷积神经网络(Convolutional Neural Networks, CNN)基础
卷积神经网络(Convolutional Neural Networks, CNN),是一种 针对图像 的特殊的 神经网络. 卷积神经网络概述 Why not DNN? 图像数据的维数很高,比如 1, ...
- 人工神经网络 人工智能,人工智能神经网络技术
网上说的深度学习,人工智能具体是什么东西呢? . 深度学习:将"低层"特征表示转化为"高层"特征表示后,用"简单模型"即可完成复杂的分类等学 ...
- bp神经网络和cnn神经网络,bp神经网络与cnn区别
深度学习与神经网络有什么区别 深度学习与神经网络关系2017-01-10最近开始学习深度学习,基本上都是zouxy09博主的文章,写的蛮好,很全面,也会根据自己的思路,做下删减,细化. 五.Deep ...
- 神经网络和深度神经网络,深度神经网络类型包括
有哪些深度神经网络模型? 目前经常使用的深度神经网络模型主要有卷积神经网络(CNN) .递归神经网络(RNN).深信度网络(DBN) .深度自动编码器(AutoEncoder) 和生成对抗网络(GAN ...
- 神经网络和深度神经网络,图神经网络和神经网络
神经网络与深度神经网络有什么区别 谷歌人工智能写作项目:神经网络伪原创 深度学习与神经网络有什么区别 找深度学习和神经网络的不同点,其实主要的就是:原来多层神经网络做的步骤是:特征映射到值好文案.特征 ...
- 神经网络和图神经网络,神经网络的图怎么画
神经网络(深度学习)的几个基础概念 从广义上说深度学习的网络结构也是多层神经网络的一种.传统意义上的多层神经网络是只有输入层.隐藏层.输出层.其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底 ...
最新文章
- java 判断时间合法_java 中 Date 类型快判断日期是否合法.
- leetcode算法题--最大整除子集
- python中find函数忽略大小写_python字符串(大小写、判断、查找、分割、拼接、裁剪、替换、格式化)...
- 用函数fopen_s打开数据文件
- SLF4J:Failed to load class org.slf4j.impl.StaticLoggerBinder
- 一位老工程师的忠告,切记!
- SVD 与 PCA 的直观解释(1): 线性变换
- socket编程(十)
- python编写命令行框架_使用 Python 和 Click 编写命令行应用程序
- 笔记本电脑如何保养_电脑温度一高就“翻脸”,电脑小白该如何解决?学会少花冤枉钱...
- Selenium-鼠标操作
- SQL SERVER获取数据库文件信息
- 计算机应用能力考试湖南成绩查询,湖南计算机等级考试成绩查询入口
- 组织的目的是使平凡的人做出不平凡的事 --- 彼得.德鲁克 《卓有成效的管理者》
- switch的使用细节
- ppt学习06——排版
- php cgi.sock 502,nginx中unix:/tmp/php-cgi.sock错误解决解决
- python翻译-python实现在线翻译
- STM32F1CAN通讯
- 生日祝福html_说祝福 | 祝4月的你生日快乐