diff --git a/new/begin-app-dev-tf-keras/0.md b/new/begin-app-dev-tf-keras/0.md index 01effa461f4d0cfe461914c5aa3a5102d182b798..a24824daf634628824037ed273d7b7d8a16a9b45 100644 --- a/new/begin-app-dev-tf-keras/0.md +++ b/new/begin-app-dev-tf-keras/0.md @@ -10,13 +10,13 @@ TensorFlow 是用于机器学习以及最近的深度学习的最受欢迎的架 # 这本书涵盖的内容 -*第 1 课,神经网络和深度学习简介*可帮助您设置和配置深度学习环境,并开始研究各个模型和案例研究。 它还讨论了神经网络及其思想及其起源,并探讨了其功能。 +第 1 课,“神经网络和深度学习简介”可帮助您设置和配置深度学习环境,并开始研究各个模型和案例研究。 它还讨论了神经网络及其思想及其起源,并探讨了其功能。 -*第 2 课,模型体系结构*显示了如何使用深度学习模型预测比特币价格。 +第 2 课,“模型体系结构”显示了如何使用深度学习模型预测比特币价格。 -*第 3 课,模型评估和优化*展示了如何评估神经网络模型。 我们将修改网络的超参数以提高其性能。 +第 3 课,“模型评估和优化”展示了如何评估神经网络模型。 我们将修改网络的超参数以提高其性能。 -*第 4 课,产品化*解释了如何将深度学习模型产品化,并提供了如何将模型部署为 Web 应用程序的练习。 +第 4 课,“产品化”解释了如何将深度学习模型产品化,并提供了如何将模型部署为 Web 应用程序的练习。 # 这本书需要什么 diff --git a/new/begin-app-dev-tf-keras/1.md b/new/begin-app-dev-tf-keras/1.md index 3f91f71912ea87c8432285f69c2b29dc3507dad7..cfa8ce45517835309165cf5ece2647d05aa0f1eb 100644 --- a/new/begin-app-dev-tf-keras/1.md +++ b/new/begin-app-dev-tf-keras/1.md @@ -377,7 +377,7 @@ CIFAR 数据集是机器学习数据集,其中包含按不同类别组织的 在这里,我们还有两个 TensorFlow 变量`W`和`B`。 请注意,这些变量的初始化非常简单:`W`被初始化为修剪后的高斯分布(修剪过`size_in`和`size_out`)的随机值,标准偏差为`0.1,`和`B`( 术语)初始化为`0.1`(常数)。 这两个值在每次运行期间都会不断变化。 该代码段执行两次,产生两个完全连接的网络-一个将数据传递到另一个。 -那 11 行 Python 代码代表了我们完整的神经网络。 我们将在*第 2 课*和*模型体系结构*中详细介绍使用 Keras 的每个组件。 目前,应重点了解网络在每次运行时都会改变每个层中的`W`和`B`值,以及这些代码片段如何形成不同的层。 这 11 行 Python 是数十年来神经网络研究的高潮。 +那 11 行 Python 代码代表了我们完整的神经网络。 我们将在“第 2 课”,“模型体系结构”中详细介绍使用 Keras 的每个组件。 目前,应重点了解网络在每次运行时都会改变每个层中的`W`和`B`值,以及这些代码片段如何形成不同的层。 这 11 行 Python 是数十年来神经网络研究的高潮。 现在让我们训练该网络以评估其在 MNIST 数据集中的表现。 @@ -486,4 +486,4 @@ $ tensorboard --logdir=mnist_example/ 在本课程中,我们使用 TensorBoard 探索了经过 TensorFlow 训练的神经网络,并以不同的时期和学习率训练了我们自己的该网络的修改版本。 这为您提供了有关如何训练高性能神经网络的动手经验,还使您能够探索其某些局限性。 -您认为我们可以使用真实的比特币数据达到类似的准确性吗? 在*第 2 课*和*模型结构*期间,我们将尝试使用通用的神经网络算法预测未来的比特币价格。 在*第 3 课*,*模型评估和优化,*中,我们将评估和改进该模型,最后,在*第 4 课*,*产品化,* 我们将创建一个程序,通过 HTTP API 对该系统进行预测。 \ No newline at end of file +您认为我们可以使用真实的比特币数据达到类似的准确性吗? 在“第 2 课”,“模型结构”期间,我们将尝试使用通用的神经网络算法预测未来的比特币价格。 在“第 3 课”,“模型评估和优化”中,我们将评估和改进该模型,最后,在“第 4 课”,“产品化”,我们将创建一个程序,通过 HTTP API 对该系统进行预测。 \ No newline at end of file diff --git a/new/begin-app-dev-tf-keras/2.md b/new/begin-app-dev-tf-keras/2.md index f0a8c245cce917cfc5503560cf2a830bc7263b98..c73a527cc036883d0402cd3c5cc42a6a65afd986 100644 --- a/new/begin-app-dev-tf-keras/2.md +++ b/new/begin-app-dev-tf-keras/2.md @@ -1,6 +1,6 @@ # 第 2 章模型架构 -基于*第 1 课*,*神经网络和深度学习简介*的基本概念,我们现在进入一个实际问题:我们可以使用深度学习模型预测比特币价格吗? 在本课程中,我们将学习如何建立尝试这样做的深度学习模型。 +基于“第 1 课”,“神经网络和深度学习简介”的基本概念,我们现在进入一个实际问题:我们可以使用深度学习模型预测比特币价格吗? 在本课程中,我们将学习如何建立尝试这样做的深度学习模型。 我们将通过将所有这些组件放在一起并构建一个简单而完整的深度学习应用程序的第一个版本来结束本课程。 @@ -329,7 +329,7 @@ bitcoin_recent.to_csv('data/bitcoin_recent.csv', index=False) ## 模型组件 -正如我们在*第 1 课*和*神经网络和深度学习简介*中看到的那样,LSTM 网络也具有输入,隐藏和输出层。 每个隐藏层都有一个激活函数,用于评估该层的相关权重和偏差。 正如预期的那样,网络将数据从一层顺序移到另一层,并在每次迭代(即一个时期)时通过输出评估结果。 +正如我们在“第 1 课”,“神经网络和深度学习简介”中看到的那样,LSTM 网络也具有输入,隐藏和输出层。 每个隐藏层都有一个激活函数,用于评估该层的相关权重和偏差。 正如预期的那样,网络将数据从一层顺序移到另一层,并在每次迭代(即一个时期)时通过输出评估结果。 Keras 提供了直观的类来表示这些组件中的每个组件: @@ -375,7 +375,7 @@ model.compile(loss="mse", optimizer="rmsprop") > 片段 1:使用 Keras 的 LSTM 实现 -此实现将在*第 3 课*,*模型评估和优化*中进一步优化。 +此实现将在“第 3 课”,“模型评估和优化”中进一步优化。 Keras 抽象允许人们专注于使深度学习系统更具性能的关键元素:正确的组件顺序,要包含的层和节点的数量以及要使用的激活功能。 所有这些选择都取决于将组件添加到实例化的`keras.models.Sequential()`类的顺序或通过传递给每个组件实例化的参数(即`Activation("linear")`)确定的。 最后的`model.compile()`步骤使用 TensorFlow 组件构建神经网络。 @@ -407,7 +407,7 @@ model.predict(x=X_train) Keras 允许在每个步骤中进行更大的控制。 但是,其重点是使用户在尽可能短的时间内尽可能轻松地创建神经网络。 这意味着我们可以从一个简单的模型开始,然后在上述每个步骤中增加复杂性,以使初始模型的性能更好。 -在即将进行的活动和课程中,我们将利用该范例。 在下一个活动中,我们将创建最简单的 LSTM 网络。 然后,在*第 3 课*,*模型评估和优化*中,我们将不断评估和更改该网络,以使其更加健壮和高效。 +在即将进行的活动和课程中,我们将利用该范例。 在下一个活动中,我们将创建最简单的 LSTM 网络。 然后,在“第 3 课”,“模型评估和优化”中,我们将不断评估和更改该网络,以使其更加健壮和高效。 ## 活动 4 –使用 Keras 创建 TensorFlow 模型 diff --git a/new/begin-app-dev-tf-keras/3.md b/new/begin-app-dev-tf-keras/3.md index d0ced79805f27ce77f723276077c5a632617b068..2d750dc0a5b7a15fbfc72110f2c77a71fc7add4e 100644 --- a/new/begin-app-dev-tf-keras/3.md +++ b/new/begin-app-dev-tf-keras/3.md @@ -30,7 +30,7 @@ 这两个类别中的问题具有以下特性: -* **分类**:以类别为特征的问题。 类别可以不同,也可以不同。 它们也可能是关于二进制问题的。 但是,必须将它们明确分配给每个数据元素。 分类问题的一个示例是使用卷积神经网络将标签*汽车*或*而非汽车*分配给图像。 *第 1 课*,*神经网络和深度学习简介*中探讨的 MNIST 示例是分类问题的另一个示例。 +* **分类**:以类别为特征的问题。 类别可以不同,也可以不同。 它们也可能是关于二进制问题的。 但是,必须将它们明确分配给每个数据元素。 分类问题的一个示例是使用卷积神经网络将标签*汽车*或*而非汽车*分配给图像。 “第 1 课”,“神经网络和深度学习简介”中探讨的 MNIST 示例是分类问题的另一个示例。 * **回归**:以连续变量(即标量)为特征的问题。 这些问题的测量范围是,其评估考虑的是网络与实际值的接近程度。 一个示例是时间序列分类问题,其中使用递归神经网络预测未来温度值。 比特币价格预测问题是回归问题的另一个示例。 虽然对于这两个问题类别,评估这些模型的总体结构是相同的,但我们采用了不同的技术来评估模型的表现。 在以下部分中,我们将探讨用于分类或回归问题的这些技术。 @@ -88,7 +88,7 @@ 对于回归问题,MSE 函数是最常见的选择。 对于分类问题,二元交叉熵(对于二元类别问题)和分类交叉熵(对于多类别问题)是常见的选择。 建议从这些损失函数开始,然后在发展神经网络时尝试其他函数,以期获得性能。 -我们在*第 2 课*,*模型架构,*中开发的网络使用 MSE 作为其损失函数。 在下一节中,我们将探讨该功能如何在网络训练中发挥作用。 +我们在“第 2 课”,*模型架构,*中开发的网络使用 MSE 作为其损失函数。 在下一节中,我们将探讨该功能如何在网络训练中发挥作用。 ### 不同的损耗函数,相同的架构 @@ -110,7 +110,7 @@ TensorFlow 团队可使用 TensorFlow Playground 应用程序,以帮助我们 ### 使用 TensorBoard -TensorBoard 擅长评估神经网络。 正如*第 1 课*,*神经网络和深度学习简介*中所述,TensorBoard 是 TensorFlow 附带的一套可视化工具。 在中,可以探索每个时期后损失函数评估的结果。 TensorBoard 的一大功能是可以分别组织每个运行的结果,并比较每个运行的结果损失函数指标。 然后,您可以决定要调整哪些超参数,并对网络的运行情况有一个大致的了解。 最好的部分是,这一切都是实时完成的。 +TensorBoard 擅长评估神经网络。 正如“第 1 课”,“神经网络和深度学习简介”中所述,TensorBoard 是 TensorFlow 附带的一套可视化工具。 在中,可以探索每个时期后损失函数评估的结果。 TensorBoard 的一大功能是可以分别组织每个运行的结果,并比较每个运行的结果损失函数指标。 然后,您可以决定要调整哪些超参数,并对网络的运行情况有一个大致的了解。 最好的部分是,这一切都是实时完成的。 为了在我们的模型中使用 TensorBoard,我们将使用 Keras 回调函数。 我们通过导入`TensorBoard`回调并将其传递给我们的模型(在调用`fit()`函数时)来完成此操作。 以下代码显示了如何在上一课中创建的比特币模型中实施该示例: @@ -178,9 +178,9 @@ Keras 提供了`model.evaluate(),`方法,该方法使针对测试集评估训 ## 评估比特币模型 -我们在*第 1 课*,*神经网络和深度学习简介*的活动期间创建了一个测试集。 该测试集具有 19 周的比特币每日价格观察,大约相当于原始数据集的 20%。 +我们在“第 1 课”,“神经网络和深度学习简介”的活动期间创建了一个测试集。 该测试集具有 19 周的比特币每日价格观察,大约相当于原始数据集的 20%。 -我们还在*第 2 课*,*模型结构,* 并将经过训练的网络存储在磁盘上(`bitcoin_lstm_v0).` 我们现在可以在测试集中的 19 周数据中的每一个中使用`evaluate()`方法,并检查第一个神经网络的性能。 +我们还在“第 2 课”,*模型结构,* 并将经过训练的网络存储在磁盘上(`bitcoin_lstm_v0).` 我们现在可以在测试集中的 19 周数据中的每一个中使用`evaluate()`方法,并检查第一个神经网络的性能。 为了做到这一点,我们必须在前几周提供 76 个。 我们之所以必须这样做,是因为我们的网络已经过训练,可以准确地使用 76 周的连续数据来预测一周的数据(我们将通过在*第 4 课中定期对网络进行较大的定期培训来解决此问题* ,*产品化,*,当我们将神经网络部署为 Web 应用程序时): @@ -717,7 +717,7 @@ MAPE(整个系列) ###### 活动 7 –优化深度学习模型 -在此活动中,我们对在*第 2 课*和*模型体系结构*(`bitcoin_lstm_v0`)中创建的模型实施不同的优化策略。 该模型在完整的反规范化测试集上获得了大约 8.4%的 MAPE 性能。 我们将努力缩小这一差距。 +在此活动中,我们对在“第 2 课”,“模型体系结构”(`bitcoin_lstm_v0`)中创建的模型实施不同的优化策略。 该模型在完整的反规范化测试集上获得了大约 8.4%的 MAPE 性能。 我们将努力缩小这一差距。 1. 在您的终端上,通过执行以下命令来启动 TensorBoard 实例: diff --git a/new/begin-app-dev-tf-keras/4.md b/new/begin-app-dev-tf-keras/4.md index 229d3e924716b0716fab6732ba7cf8ac27ad91dc..e4237a7cbede6ca388d037bcd423b8ee04fc5bd2 100644 --- a/new/begin-app-dev-tf-keras/4.md +++ b/new/begin-app-dev-tf-keras/4.md @@ -83,7 +83,7 @@ > *代码段 2* :`Model()`类中的`train()`方法。 该方法使用来自`self.X`和`self.Y`的数据训练`self.model`中可用的模型。 -在前面的代码片段中,您将注意到`train()`方法类似于*第 3 课*和*中对*活动 6* 和 *7* 的解决方案。 模型评估与优化*。 总体思路是,可以很容易地将 Keras 工作流程中的每个过程(构建或设计,训练,评估和预测)转变为程序的不同部分。 在我们的例子中,我们将它们变成可以从`Model()`类调用的方法。 这将组织我们的程序,并提供一系列约束(例如在模型体系结构或某些 API 参数上),以帮助我们在稳定的环境中部署模型。 +在前面的代码片段中,您将注意到`train()`方法类似于“第 3 课”,*中对*活动 6* 和 *7* 的解决方案。 模型评估与优化*。 总体思路是,可以很容易地将 Keras 工作流程中的每个过程(构建或设计,训练,评估和预测)转变为程序的不同部分。 在我们的例子中,我们将它们变成可以从`Model()`类调用的方法。 这将组织我们的程序,并提供一系列约束(例如在模型体系结构或某些 API 参数上),以帮助我们在稳定的环境中部署模型。 在下一部分中,我们将探讨处理新数据的通用策略。