TensorFlow and deep learning,without a PHD 第1章 第2章

第1章

在您的计算机上安装必要的软件:Python、TensorFlow和Matplotlib。

所有代码都在这里:

https://download.csdn.net/download/qq_39683748/10800108

本教程的示例代码在tensorflow-mnist-tutorial文件夹中。文件夹包含多个文件。

现在你将要打开的的是mnist_1.0_softmax.py。

其他文件既可以是解决方案,也可以是支持数据加载和可视化结果的代码。

当启动初始Python脚本时,您应该看到训练过程的实时可视化:

 

 

故障排除:如果不能运行实时可视化,或者如果您希望只处理文本输出,则可以通过注释一行和注释另一行来取消激活可视化。请参阅mnist_1.0_softmax.py文件底部的说明。

为TensorFlow构建的可视化工具是TensorBoard。为TensorFlow构建的可视化工具是TensorBoard。

它的构建使您可以在远程服务器上执行您的分布式TensorFlow作业。

我们需要在matplotlib做这个实验,得到实时动画。

但是如果你用TensorFlow处理正式的工作,一定要检查TensorBoard

第2章

理论:训练神经网络

我们将首先观察正在训练的神经网络。

下一节将解释代码,因此现在不必查看它。

我们的神经网络接收手写数字并将它们分类,也就是说,把它们识别为0、1、2等数字,直到 9。

它基于内部变量(稍后解释的“权重”和“偏差”)来这样做,这些变量需要具有正确的值,以便分类工作正常。

这个“正确的值”是通过训练过程学习的,稍后也会详细解释。

现在你需要知道的是,训练循环是这样的:

训练数据= >更新权重和偏置=更好的识别效果(循环)

让我们逐个浏览可视化的六个面板,看看训练神经网络需要什么。

首先是测试集的数据:

为了测试真实情况下的识别效果,我们必须使用系统在训练期间没有用过的的数据。

否则,它可能会死记硬背地记住所有的训练数据,但是却仍然不能识别新写的一个“8”。

MNIST数据集包含10000个测试数字。

在这里,大约1000个,其中所有被误认的都在顶部(红色背景)排序。

左边的刻度可以让你大致了解分类器的准确度(%正确识别的测试数字)

 

损失函数:

为了使训练能进行,我们要定义一个损失函数,即一个值,它表示系统识别数字的准确程度(值越小越准确),并通过训练使其最小化。损失函数的选择将在后面解释(这里选择的是“交叉熵”)。我们可以看到,随着训练的进行,训练集和测试集的损失函数都下降了:这是个好现象,因为这意味着神经网络在学习。X轴表示通过学习循环的迭代。

 

准确率:

准确率:正确识别的数字占总数的百分比。

红线和蓝线是在训练集和测试集上计算得到的。

如果训练正常的情况下,准确率会渐渐提高。

 

 

权重和偏置的变化:

最后两个图表示了内部变量所取值的变化。

随着训练的进行,权重和偏置的值会变化。

在这里,我们发现,偏置最初是从0开始的,最终取值大约均匀地分布在-1.5和1.5之间。

如果系统不能很好地收敛,这些图有助于我们判断问题所在。

如果你看到重量和偏见变化到100或1000,你的训练可能会有问题。

图中的带是百分位。有7个波段,所以每个波段是100/7=所有值的14%。

 

可视化GUI的键盘快捷方式:

1 ......... 只显示第1张图片
2 ......... 只显示第2张图片
3 ......... 只显示第3张图片
4 ......... 只显示第4张图片
5 ......... 只显示第5张图片
6 ......... 只显示第6张图片
7 ......... 显示第1,2张图片
8 ......... 显示第4,5张图片
9 ......... 显示第3,6张图片
ESC or 0 .. 返回,显示所有图片
SPACE ..... 暂停/继续
O ......... 界面缩放模式 (然后用鼠标操作)
H ......... 重置所有缩放
Ctrl-S .... 保存当前的图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值