选自Codelabs 机器之心编译 参与:侯韵楚、王宇欣、赵华龙、邵明、吴攀
本项目的原文可参阅:https://codelabs.developers.google.com/codelabs/cloud-tensorflow-mnist/#13 1、概述
在 codelab 项目中,你将学习如何构建并训练出能够识别手写数字的神经网络。在这过程中,当这个神经网络的准确度提升至 99%时,你还会发现深度学习专业人士用来有效训练模型的贸易工具。 这个 codelab 项目使用的是 MNIST 数据集,这个包含 60,000 个有标记数字的集合是几届博士努力近二十年的成果。你将会用不到 100 行的 Python/TensorFlow 代码来解决上述问题。 你将学到: ①神经网络的定义及如何训练神经网络 ②如何使用 TensorFlow 构建基本的 1 层神经网络 ③如何添加多层神经网络 ④训练提示和技巧:过拟合、dropout、学习速率衰减等... ⑤如何解决深度神经网络的问题 ⑥如何构建卷积网络 对此,你将需要: ①Python 2 或 3(建议使用 Python 3) ②TensorFlow ③Matplotlib(Python 的可视化库) 安装说明会在下一步中给出。 2. 准备:安装 TensorFlow,获取示例代码 在你的计算机上安装必要软件:Python、TensorFlow 和 Matplotlib。完整的安装说明如下:INSTALL.txt 克隆 GitHub 存储库:
这个库包含了多个文件,而你将只在mnist_1.0_softmax.py中操作。其它文件是用于加载数据和可视化结果的解决方案或支持代码。 当你启动初始python脚本时,应当能够看到训练过程的实时可视化:
疑难解答:如果无法运行实时可视化,或者如果你只想要使用文本输出,则可以通过注释掉一行并取消另一行的注释来禁用可视化。请参阅文件底部的说明。 为 TensorFlow 构建的可视化工具是 TensorBoard,其主要目标比我们在这里所需的更宏大。它能使你能够跟踪你在远程服务器上的分布式 TensorFlow 工作。而对于我们的这个实验,matplotlib 将作为替代,并且我们还有额外收获实时动画。但是如果你使用 TensorFlow 进行严谨的工作,你一定要试试 TensorBoard。 3、理论:训练一个神经网络 我们首先来观察一个正在训练的神经网络。其代码会在下一节解释,所以现在不必查看。 我们的神经网络可以输入手写数字并对它们进行分类,即将它们识别为 0、1、2……9。它基于内部变量(「权重(weights)」和「偏差(bias)」,会在后面进行解释),需要有一个正确的值来分类才能正常工作。这个「正确的值」通过训练过程进行学习,这也将在后面详细解释。你现在需要知道的是,训练回路看起来像这样: Training digits = |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|