新手神器!不用部署深度学习环境、上传数据集!(附代码视频教程)
来源:大数据文摘
作者:Emil Wallnér
本文长度为4600字,建议阅读7分钟
本文带你快速创建神经网络,开启深度学习之旅。
前言
深度学习的浪潮在五年前开始兴起。随着计算能力的爆炸型增长和几个成功的案例,深度学习引起了大肆宣传。深度学习技术可以用来驾驶车辆,在Atari游戏中进行人机对抗,以及诊断癌症。
开始学习神经网络时,我花了两周的时间进行探索,选择合适的工具,对比不同的云服务以及检索在线课程。但回想起来,我还是希望我可以从第一天就能创建神经网络,这也是这篇文章的目的。
你不需要有任何预备知识。当然如果你对Python,命令行和Jupyter notebook有基础的了解会对你有所帮助。
深度学习是机器学习的一个分支,它被证明是一种可以在原始数据(如一幅图、或者一段声音)中找到固定模型的有效方法。 如果你想对猫和狗的图像进行分类。不需要具体的编程,它首先会找到图片中的边,然后从不同的边中构建模式。接下来,它会检测到鼻子,尾巴和爪子。通过这样的方式,神经网络最终可以实现对猫和狗进行分类。
但是,结构化的数据可以使用更好的机器学习算法。举个例子,如果你的excel表中记录了有序的客户数据,你希望可以预测他们的下一张订单,那么你可以使用传统的方法,使用一个更简单的机器学习算法。
核心逻辑
想象一个安装了很多随机调整齿轮的机器。这些齿轮堆叠在很多层上,而且会相互影响。最初,这个机器无法正常工作。然后随机地调整齿轮,直到调整到可以给出正确输出。
然后一个工程师会开始检查所有的齿轮,然后标记出来哪些齿轮会造成误差。他会从最后一层的齿轮开始,因为这里是所有误差累计的结果。一旦他找到了最后一层的误差,他就会开始查看前一层。通过这种方法他可以计算出每一个齿轮对于误差的贡献值。我们把这个过程称为反向传播。
然后这个工程师开始根据之前找到的误差对每一个齿轮进行调整,然后重新运行整个机器。运行机器,计算误差,调整齿轮,不断循环这个过程直到机器给出正确输出。
预测 – 计算误差 – 调整预测值 (训练周期)
神经网络的运行方式也是如此,有输入和输出,然后通过调整齿轮来寻找输入和输出之间的关系。给定一个输入,通过调整齿轮来预测输出,然后将预测值和真实值进行对比。
神经网络通过调整齿轮来追求最小误差(预测值与实际值之间的差异),它会不断调整齿轮,直到预测值与真实值之间的差异尽可能小。
最小化误差的一个最佳方法是梯度下降,即通过误差函数、或者说成本函数来进行误差的计算。
浅层神经网络
许多人认为人工神经网络是我们大脑新皮质的数字化复制品。 这是一个错误的观念。
我们并不知道大脑如何能够做出这样的声明。这只是神经网络发明人弗兰克·罗森布拉特(Frank Rosenblatt)的一个灵感源泉。
浅层神经网络 输入-权重-加和-判断 –> (预测值-实际值)*学习率
与神经网络模拟器玩一两个小时,你就可以获得对其的直观感受。
我们将从实现一个简单的神经网络开始,以了解TFlearn中的语法。从经典的101问题开始,也就是OR运算符。虽然神经网络更适合于其他类型的数据,但这是了解其工作原理的一个很好的问题。
所有的深度学习程序都遵循同样的核心逻辑:
首先加载库,然后加载数据并清洗。不管是照片,音频还是知觉数据,所有的输入都会被转化为数字。这些很长的数字列表就是我们神经网络的输入。
现在开始设计神经网络。选择你的神经网络层的类型和数量。
然后它会进入学习过程。
神经网络知晓输入和输出,然后自行寻找二者之间的关系。
最后会用训练好的模型中给到你一个预测值。
下面是这个神经网络的程序:
输出:
第一行 以“#”开头的行表示备注,一般用来解释代码
第二行 加载TFlearn库 通过这个语句我们可以使用谷歌Tensorflow的深度学习函数
第五行和第六行 将上述表中的数据存储在列表中
每个数字末尾的点会将整数映射到浮点数。它存储具有十进制值的数字,使计算更加精确。
第七行 初始化神经网络,并指定输入数据的维度或者说尺寸
所有的OR运算都是在一对数据中进行的,所以维度是2.
空值是默认值,表示批量的大小
第八行 输出层
激活函数将过程中的结果映射到输出层
在这个例子中,我们使用Sigmoid函数将其映射到(0,1)区间范围内
第十一行 应用回归
使用优化器选择合适的算法来最小化成本函数
学习率决定了神经网络的调整速度,而损失变量决定了如何计算误差。
第十二行 选择使用哪个神经网络
一般情况下也可以用来指定存储训练日志的位置
第十三行 训练你的神经网络和模型
选择你的输入数据(OR)以及实际的标签(Y_truth)
Epochs决定了你的神经网络运行数据的循环次数
如果你设置 snapshot=True,那么每次循环后都会进行模型验证
第十四到十八行 使用训练好的模型进行预测
在这个例子中,返回的是结果是1/True的概率
输出层:
第一个结果表示[0.]&[0.]组合为真的可能性为4%,以此类推。“Training step”显示了你训练了多少批。
在每一批中所有数据都将训练一次,类似于Epoch。如果数据相对内存较大,你需要停止分段训练。损失函数会计算每一次迭代的错误数量。
SGD指随机梯度下降法及最小化代价函数方法。
Iter指当前数据索引以及输入项的总和。
你可以在大多数TFlearn神经网络中找到上述逻辑和语法。学习这段代码最好的方法就是修改代码并产生一些错误。
损失曲线显示了每一次训练的错误量。
你可以通过Tensorboard来可视化每一次实验,并了解每一个参数是如何影响训练的。
这里有一些你可以运行的例子的建议。我推荐你花费几小时练习这些例子,以更好地适应运行环境以及TFlearn中的参数。
实验
增加训练与迭代次数
尝试添加或改变文档中提到的每一个函数的参数
例如g = tflearn.fullyconnected(g, 1, activation=’sigmoid’)改成tflearn.fullyconnected(g, 1, activation=’sigmoid’, bias=False)在输入项增加整数
改变输入层的形状
改变输出层的激活函数
使用不同的梯度下降方法
改变神经网络计算代价的方式
用X和Y来替代“AND”和“NOT”逻辑运算
例如将最后一项Y_truth从[1.]改为[0.]。为了使其有效,你需要在网络中增加一层。
使其学得更快
想办法使得每一步学习都超过0.1秒
新手入门
结合Python来使用Tensorflow在深度学习中是最常见的手段。
TFlearn是一个运行在Tensorflow之上的高层次框架。
另一个常见的框架是Keras。这是一个更加健壮的库,但是我发现TFlearn的语法更加简洁易懂。
它们都是运行在Tensorflow之上的高层次框架。
你可以使用你的电脑CPU来运行简单的神经网络。但是大多数实验需要运行数个小时甚至几周。这也是为什么大多数人通过现代GPU云服务来进行深度学习。
最简单的GPU云服务解决方案是FloydHub(https://www.floydhub.com/)。如果你掌握了基础的命令行技能,部署FloydHub将不会超过5分钟。
使用FloyHub文档来安装floyd-cli命令行工具。FloydHub还为遇到问题的客户提供内部客服支持。
新手神器!不用部署深度学习环境、上传数据集!(附代码视频教程)相关推荐
- docker 利用docker拉取Nvidia/cuda官方镜像,部署深度学习环境
利用docker拉取Nvidia/cuda官方镜像,部署深度学习环境 1.拉取Nvidia/cuda官方镜像 2.生成容器 3.在容器内安装深度学习环境 看完这篇博文,可以查看我总结的另一篇博文教程: ...
- Jetson AGX Xavier部署深度学习环境
最近的项目需要在英伟达的盒子上部署目标跟踪算法,配环境踩了不少坑,做一个简单的记录. 拿到盒子之后需要注意jetpack的版本,还有是不是已经装好了cuda,这关系到后续安装pytorch和torch ...
- Centos8安装英伟达显卡驱动并通过docker部署深度学习环境
20201107 - 每个人的机器和实际需要的环境都不一样,本文只是提供了在自己实验室centos8上的部署过程,部署过程中,没有什么问题.请谨慎参考本篇文章,以免浪费宝贵时间. 0. 引言 之前的时 ...
- Windows Server 2019服务器远程桌面服务部署+深度学习环境配置教程
文章目录 1.安装Windows Server 2019 2.开启WLAN服务 3.固定IP地址 4.开启远程桌面服务 4.1 添加远程桌面服务 4.2 激活服务器 4.3 安装许可证 5.配置远程桌 ...
- 10个深度学习软件的安装指南(附代码)
来源:AI前线 本文长度为2385字,建议阅读4分钟 本文为你介绍10个深度学习软件安装指南. 由于近期论文的需要,我搭建了一个基于 Ubuntu 和英伟达的深度学习环境.尽管已经有很多非常棒的关于英 ...
- 基于keras和深度学习的视频分类实战(附代码)
作者首先通过train.py训练微调模型,之后用训练好的模型在predict_video.py进行视频分类. 在执行图像分类时,我们: 输入一幅图像到我们的CNN中: 从CNN中获得预测: 选择相应概 ...
- Docker 部署深度学习 运行deeplabV3
文章目录 前言 一.Docker简介 二.帮助命令 三.镜像常用命令 四.容器常用命令 五.配置深度学习环境 六.运行deeplabV3代码 七.提交容器,保存镜像 总结 前言 本文主要介绍docke ...
- PaddlePaddle开发者福利:深度学习环境一键部署+基础入门指导书
2019独角兽企业重金招聘Python工程师标准>>> 由河北科技大学许云峰老师团队打造和分享,线下深度学习实验环境镜像(PaddlePaddle Fluid 1.1.0版+Pyth ...
- 在英特尔硬件上部署深度学习模型的无代码方法 OpenVINO 深度学习工作台的三部分系列文章 - CPU AI 第一部
作者 Taylor, Mary, 翻译 李翊玮 关于该系列 了解如何转换.微调和打包推理就绪的 TensorFlow 模型,该模型针对英特尔®硬件进行了优化,仅使用 Web 浏览器.每一步都在云中使用 ...
最新文章
- c3p0 参数 模糊查询_mybatis之动态sql,模糊查询,结果集处理,mybatis分页及特殊字符处理...
- MongoDB教程-使用Node.js从头开始CRUD应用
- 智慧交通day03-车道线检测实现02-1:相机校正
- 小微企业——客户借款原因分析
- SQL SERVER游标浅析
- 避免 rm -rf * 的悲剧,你值得拥有
- 神秘的Windows7 Send To
- 我的世界服务器怎么显示玩家和怪,我的世界怎样用指令来让怪物不攻击玩家 | 手游网游页游攻略大全...
- acer软件保护卡怎么解除_Acer软件保护卡下载
- php 降低视频分辨率,将低分辨率视频变成1920*1080高分辨视频,可自由调节分辨率宽高...
- 如何卸载 STEP 7-MicroWIN编程软件?
- 微信小程序或微信网页里关注公众号
- 理解手机中的感应器模块:重力感应/光线感应/电子罗盘/陀螺仪模块功能
- 已知函数comp的C语言,在C ++ STL中设置value_comp()函数
- 北京喜意来误请“熊猫烧香”骗子团伙“毒王”解决password01.txt.shs病毒(图)
- 预训练模型与传统方法在排序上有啥不同?
- 2022年度PANTONE流行色发布
- RT-thread基础移植//依据rtt实战学习记录
- Eplan P8安装在win10系统运行卡顿解决方案(适用于Version 2004及之后的版本)
- 联想小新V1000安装win7教程
热门文章
- openfiler 工具栏和快捷方式
- 总结一下classpath
- 社区企业云操作系统 (不错的开源虚拟化系统,期待中)
- 外省籍进城务工人员随迁子女在浙江就地升学政策出台
- excel表格中IP地址排序
- Petshop3.0学习笔记(二)Global.asax文档分析
- padding在css中是什么意思,CSS里的padding是什么意思?
- 从文本中提取知识图谱代码比较好的,代码对齐,可以使用的
- 2020-10-26如何在Amazon AWS上设置一台免费Linux云主机
- AWS上创建的notebook实例提示没有导入pytorch模块的解决办法 直接在编辑块中执行如下命令,最后重启kernel问题解决