当前位置: 首页 > news >正文

训练神经网络用什么显卡,cpu可以训练神经网络吗

gpu构架为什么更适合发展神经网络

因为神经网络这种大范围多任务的简单运算来说,正好符合GPU这种多核架构,比如你CPU20核心,同时处理20个任务。但是神经网络可能有20000个任务(比喻)。

但最近比较有代表性的GPU-Nvidia的新TITAN-X,CUDA核心就达到了3584个,速度就不言而喻了。但是CPU的核心性能比GPU的性能强大,就好比教授和高中老师的区别。

所以在神经网络训练当中,简单训练由CUDA完成,复杂训练和综合由CPU辅助完成汇总。

这样任务被分开同时进行,平时需要训练几十天的项目可能现在几个小时就可以完成,这就是为什么GPU架构更适合神经网络并且深度学习在近年大火的原因,就是因为GPU架构解决了当初没有解决的效率问题。

谷歌人工智能写作项目:神经网络伪原创

Intel(R) HD Graphics可以用GPU跑深度学习吗?

如何提高神经网络的外推能力

人工神经网络以其智能性见长,那么神经网络能真的学到一个映射的本质吗?也就是说,对一个映射给出一定的必要的训练样本训练后,网络能否对样本以外的样本给出较为准确的预测。

泛化能力也就是神经网络用于对未知数据预测的能力。神经网络对训练样本区间范围内的样本有较好的泛化能力,而对于训练样本确定的范围外的样本不能认为有泛化能力。

常规的几种增强泛化能力的方法,罗列如下:1、较多的输入样本可以提高泛化能力;但不是太多,过多的样本导致过度拟合,泛化能力不佳;样本包括至少一次的转折点数据。

2、隐含层神经元数量的选择,不影响性能的前提下,尽量选择小一点的神经元数量。隐含层节点太多,造成泛化能力下降,造火箭也只要几十个到几百个神经元,拟合几百几千个数据何必要那么多神经元?

3、误差小,则泛化能力好;误差太小,则会过度拟合,泛化能力反而不佳。

4、学习率的选择,特别是权值学习率,对网络性能有很大影响,太小则收敛速度很慢,且容易陷入局部极小化;太大则,收敛速度快,但易出现摆动,误差难以缩小;一般权值学习率比要求误差稍微稍大一点点;另外可以使用变动的学习率,在误差大的时候增大学习率,等误差小了再减小学习率,这样可以收敛更快,学习效果更好,不易陷入局部极小化。

5、训练时可以采用随时终止法,即是误差达到要求即终止训练,以免过度拟合;可以调整局部权值,使局部未收敛的加快收敛。

本人毕设题目是关于神经网络用于图像识别方面的,但是很没有头续~我很不理解神经网络作用的这一机理

我简单说一下,举个例子,比如说我们现在搭建一个识别苹果和橘子的网络模型:我们现在得需要两组数据,一组表示特征值,就是网络的输入(p),另一组是导师信号,告诉网络是橘子还是苹果(网络输出t):我们的样本这样子假设(就是):pt10312142这两组数据是这样子解释的:我们假设通过3个特征来识别一个水果是橘子还是苹果:形状,颜色,味道,第一组形状、颜色、味道分别为:103(当然这些数都是我随便乱编的,这个可以根据实际情况自己定义),有如上特征的水果就是苹果(t为1),而形状、颜色、味道为:214的表示这是一个橘子(t为2)。

好了,我们的网络模型差不多出来了,输入层节点数为3个(形状、颜色,味道),输出层节点为一个(1为苹果2为橘子),隐藏层我们设为一层,节点数先不管,因为这是一个经验值,还有另外的一些参数值可以在matlab里设定,比如训练函数,训练次数之类,我们现在开始训练网络了,首先要初始化权值,输入第一组输入:103,网络会输出一个值,我们假设为4,那么根据导师信号(正确的导师信号为1,表示这是一个苹果)计算误差4-1=3,误差传给bp神经网络,神经网络根据误差调整权值,然后进入第二轮循环,那么我们再次输入一组数据:204(当仍然你可以还输入103,而且如果你一直输入苹果的特征,这样子会让网络只识别苹果而不会识别橘子了,这回明白你的问题所在了吧),同理输出一个值,再次反馈给网络,这就是神经网络训练的基本流程,当然这两组数据肯定不够了,如果数据足够多,我们会让神经网络的权值调整到一个非常理想的状态,是什么状态呢,就是网络再次输出后误差很小,而且小于我们要求的那个误差值。

接下来就要进行仿真预测了t_1=sim(net,p),net就是你建立的那个网络,p是输入数据,由于网络的权值已经确定了,我们这时候就不需要知道t的值了,也就是说不需要知道他是苹果还是橘子了,而t_1就是网络预测的数据,它可能是1或者是2,也有可能是1.3,2.2之类的数(绝大部分都是这种数),那么你就看这个数十接近1还是2了,如果是1.5,我们就认为他是苹果和橘子的杂交,呵呵,开玩笑的,遇到x=2.5,我一般都是舍弃的,表示未知。

总之就是你需要找本资料系统的看下,鉴于我也是做图像处理的,我给你个关键的提醒,用神经网络做图像处理的话必须有好的样本空间,就是你的数据库必须是标准的。

至于网络的机理,训练的方法什么的,找及个例子用matlab仿真下,看看效果,自己琢磨去吧,这里面主要是你隐含层的设置,训练函数选择及其收敛速度以及误差精度就是神经网络的真谛了,想在这么小的空间给你介绍清楚是不可能的,关键是样本,提取的图像特征必须带有相关性,这样设置的各个阈值才有效。

OK,好好学习吧,资料去matlab中文论坛上找,在不行就去baudu文库上,你又不需要都用到,何必看一本书呢!祝你顺利毕业!

利用神经网络进行模式识别,训练时是不是必须要有对立的样本,才能实现分类?

支持向量机有单分类(oneclass)的模式,对应的一些神经网络也有类似的。单分类的作用其实是预处理,用于剔除离群点。

以您的这个例子来说,训练样本为你清晰并且确切的指纹特征,而实际工作的样本为你提取到的各种你自己的指纹特征,神经网络(SVM)所做的工作是区分哪些是你输入特征中有比较多有效信息的,而剔除掉不具有代表性或者受到干扰比较大的样本。

如果能够保证你的输入样本特征选取恰当并且噪声很小的时候,单分类模型的确可以用于分类。但是只能识别出哪些是你的指纹而哪些是其他人的指纹。

本人新手,在做BP神经网络的时候遇到了一个问题 5

不知你是不是用matlab的神经网络工具箱,因为一般神经网络都是成批处理的,每一次调整都会综合所有样本的误差进行调整,而不是一类一类图片的去调整,所以不会出现你说的现象。

目前我看过的很多C++或者其它语言自己写的神经网络,都会有这样或那样的理解错误,建议先使用现成的matlab的神经网络工具箱进行训练。另外是输入的问题,图象一般会先提取特征,再将特征作为输入。

你在贴吧也提问了吧,这个我在贴吧里也回答了。

输出的问题,一般模式识别会用01向量来代表,例如你有三类,目标输出应该是[010]这样,来代表它是第2类,训练的时候用010,当然,预测到的可能是[0.10.90.1]这样。

这是我所想到的问题,楼主看看是不是这样一回事。下面是我的一些建议:改为用神经网络工具箱。借鉴《MATLAB神经网络原理与实例精解》里的基于概率神经网络的手写体数字识别,对图象作预处理。

参考2012Bmatlab\R2012b\toolbox\nnet\nndemos下的classify_crab_demo例子。调用patternnet建立模式识别网络。

可以到《神经网络之家》 学习神经网络。

 

相关文章:

  • 中秋节到啦!程序媛请大家品尝月饼啊
  • BOM介绍以及应用以及this指向问题
  • python中列表(list)与numpy(array)的区别,行与列与维度的选择
  • js防抖和节流
  • c语言分层理解(c语言指针(下))
  • 中国剩余定理(Chinese remainder theorem, CRT)
  • Windows与网络基础-9-windows基本命令-网络相关操作
  • Label Matching Semi-Supervised Object Detection
  • 【web-利用信息泄露】(10.3)防止信息泄露
  • Vue响应式数据的原理,双向数据绑定,循环渲染中key的应用,过滤器
  • 神经网络预测值差很多,神经网络预测的局限性
  • Django数据库操作
  • 深度神经网络训练,基于深度神经网络
  • 网课查题微信公众号搭建教程
  • 水果店圈子:水果店怎么入门,水果店工作注意什么
  • 【347天】每日项目总结系列085(2018.01.18)
  • ESLint简单操作
  • Git同步原始仓库到Fork仓库中
  • js作用域和this的理解
  • nodejs:开发并发布一个nodejs包
  • PHP的Ev教程三(Periodic watcher)
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 计算机在识别图像时“看到”了什么?
  • 漂亮刷新控件-iOS
  • 区块链分支循环
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 最简单的无缝轮播
  • ​Java并发新构件之Exchanger
  • ​VRRP 虚拟路由冗余协议(华为)
  • #Linux(Source Insight安装及工程建立)
  • #QT(TCP网络编程-服务端)
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (黑马C++)L06 重载与继承
  • (七)c52学习之旅-中断
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .net实现客户区延伸至至非客户区
  • .NET是什么
  • .sh 的运行
  • @AutoConfigurationPackage的使用
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [BeginCTF]真龙之力
  • [FZSZOJ 1223] 上海红茶馆
  • [HNOI2008]Cards
  • [Java][Android][Process] 暴力的服务能够解决一切,暴力的方式运行命令行语句
  • [Java][算法 双指针]Day 02---LeetCode 热题 100---04~07
  • [leetcode] Balanced Binary Tree
  • [LeetCode]—Permutations II 求全排列(有重复值)