扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Keras深度学习入门中的编程环境Jupyter是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
目前创新互联建站已为上千余家的企业提供了网站建设、域名、虚拟主机、网站托管维护、企业网站设计、观山湖网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
一、运行 Jupyter
Jupyter在编辑过程中,每编辑一段代码,就可以运行一段代码,运行的结果也将直接显示在代码下方, 方便查看。 在数据科学领域, 需要频繁的进行数据清洗,查看,以及画图, 非常需要这种交互式的开发环境。
运行以及编辑的所有结果会保存在文件中,后续只要把文件分享给别人, 就可以看到你的一系列操作。
Jupyter以段落为主的编辑模式:
启动jupyter, 系统提示如下错误:
C:\WINDOWS\system32>jupyter notebook
AttributeError: type object 'IOLoop' has no attribute 'initialized'
原因:
tornado版本过高,如下图为5.1.1,不支持jupyter notebook.
conda install tornado=4.5
启动jupyter, 启动成功
为了便于文件管理, 指定工作路径启动:
jupyter notebook D:\g_learn\jupyter
二、通过Jupter,来进行Keras环境检查:
新建一个python文件,命名为keras_evn,保存
Python 版本检查,输入命令!python --version,用 [shift +enter]运行基础包导入检查,用 [shift +enter]运行,正常检查安装版本三、用Python实现感知机,为了便于理解keras的各种api的作用:
前向传播:通过输入层输入,并且一路向前计算出输出的结果。
反向传播:通过输出反向更新权重的过程。差值*学习率来更新权重。
链式法则:是微积分中的求导法则,用于求一个复合函数的导数,是在微积分的求导运算中一种常用的方法。复合函数的导数将是构成复合这有限个函数在相应点的 导数的乘积,就像锁链一样一环套一环,故称链式法则。
线性感知机:根据特征对数据进行分类,通过这个算法,可以发现一条曲线、曲面,或者叫做超平面,在二维图形中可以表现为一条直线,当维度大于3时表现为是一个超平面,n-1维。
在一个二维空间内,生成一些点, 生成一条直线,将原来点进行分割。用感知机对随机点进行分类, 来看差别。
运行结果如下:
四、Keras Hello world - Minist手写体识别:
Keras基础模块:
在juypter中, 用SHIFT+TAB键快速查看函数参数
Minist 手写体识别导入数据集|模型|层|优化器
从数据集中加载数据,训练集和测试集,这个操作需要一会儿
训练集60000张 28*28,测试集
这是可视化的包, 以灰度展示,加上参数cmap="gray"
看一下这张图片是不是5,将图片转成一个一维的向量,并查看。
可以看到这是0-255的值
可以看到这是0-255的值
我们期望把值缩小到0-1之内, 神经网络可以更快的收敛。
对有标签进行处理, keras提供了相应的工具,用to_categorical,将向量转化为二阶矩阵,因为是0-9, 所以是10个。
构建模型,后面的工作都交给神经网络。输入层-隐藏层-输出层
以上搭建了模型,通过compile,对神经网络进行编译:优化器,损失函数, 通过【准确度】可以人为评判。
对模型进行训练,优化5次,可以看到, 精度越来越高,损失越来越小
用evaluate对模型的效果进行评估
'activations', 激活函数'applications', 有已经训练好的模型'callbacks',回调函数engine 是layer层的核心代码layers 包括keras已经实现的网络层,和卷积层等losses 损失函数,衡量训练中的好坏metricsmodels 函数式编程,和序贯编程optimizer 更新权值的一个方法preprocessing 预处理模块regularizersutils 工具模块wrappers 封装模块
看完上述内容,你们掌握Keras深度学习入门中的编程环境Jupyter是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流