提交 aba22fe9 编写于 作者: W wizardforcel

2020-12-27 13:29:09

上级 ef0b6ca7
......@@ -93,7 +93,7 @@ Docker 文件代码
现在我们已经准备好 Docker 文件,让我们看一下一些安全设置以及如何与容器共享数据。
# 共享资料
# 共享数据
在本节中,我们将研究在 Docker 容器和桌面之间共享数据。 我们将介绍一些必要的安全设置以允许访问。 然后,我们将运行自检以确保正确设置了这些安全性设置,最后,我们将运行实际的 Docker 文件。
......@@ -230,7 +230,7 @@ IPython 笔记本
这是我们将在本书中运行的环境:充分准备并准备就绪的 Docker 容器,因此您需要做的就是启动它,运行它,然后与内部托管的 Keras 和 IPython 笔记本一起使用。 这样您每次都可以拥有一个轻松,可重复的环境。
# 概要
# 总结
在本章中,我们研究了如何安装 Docker,包括从[这里](https://www.docker.com/)获取它,设置机器学习 Docker 文件,与主机共享数据回传。 ,然后最后,运行 REST 服务以提供我们将在本书中使用的环境。
......
# 图片资料
# 图片数据
在上一章中,我们准备了机器学习工具包,在其中设置了 Keras 和 Docker,以便允许我们运行 Jupyter 笔记本来处理机器学习。
......@@ -42,7 +42,7 @@ Python 元组
绘制图像
# 张量多维数组
# 张量多维数组
现在,我们已经了解了一些 MNIST 数字,我们将花一些时间看一看张量以及张量是什么。 我们将要看一看多维数组的 NumPy。 多维数组也称为**张量**。 数学词汇可能会让人有些不知所措,但我们将向您展示它比您想象的要简单得多。 然后,我们来看看张量形状。 张量形状实际上是维度的数量,或者就数组而言,是用于访问它们的不同索引的数量。 最后,我们将研究数据类型。 张量或多维数组可以容纳各种各样的不同数据类型,我们将解释其中的一些区别。
......@@ -64,7 +64,7 @@ Python 元组
这是构成我们的三个张量的三个维度。 它只是一个多维数组。 然后,当然是数据类型,即`dtype`,就像您在 NumPy 多维数组上在这里所说的那样。 您可以看到这些图像存储为`uint8`或 8 位整数,以记录`0``255`值。 好吧,我们经常将这种数据类型用于源数据,特别是对于像前一个图像一样的黑白图像。 当我们将其转换为实际的机器学习格式时,我们将使用浮点数。
# 将图像转为张量
# 将图像转为张量
在上一节中,我们了解了张量是什么。 现在,我们将使用这些知识来准备图像数据作为机器学习的张量。 首先,我们会问一个问题:为什么要使用浮点数据? 然后,我们将了解样本与样本末尾数据点之间的差异。 最后,我们将规范化数据以用于机器学习。
......@@ -86,7 +86,7 @@ Python 元组
就是这样! 我们已经看到了如何处理输入数据。 需要记住的两件事:我们将把所有东西都变成浮点数,最好是将`0``1`范围内的数据标准化。
# 将类别转为张量
# 将类别转为张量
在上一节中,我们研究了将图像转换为用于机器学习的张量,在本节中,我们将研究将输出值(类别)转换为用于机器学习的张量。
......@@ -112,7 +112,7 @@ Python 元组
创建机器学习算法时,我们要做的是让计算机学习或发现将一个图像(数字 9)转换为另一图像(在第 9 列上设置一位的位图)的功能, 这就是我们所说的机器学习。 请记住,张量只是多维数组,`x``y`值只是像素。 我们对这些值进行归一化,这意味着我们将它们从零到一的范围中获取,以便它们在机器学习算法中很有用。 标签或输出类只是我们要映射的值的数组,并且我们将使用单热编码对这些值进行编码,这又意味着只有一个是热的或设置为一个。
# 概要
# 总结
在本章中,我们了解了 MNIST 数字,以及如何获取它们。 张量实际上只是多维数组; 我们如何将图像数据编码为张量; 我们如何将分类或分类数据编码为张量; 然后我们进行了快速回顾,并采用了食谱的方法来考虑尺寸和张量,以获取用于机器学习的数据。
......
# 典神经网络
# 典神经网络
现在我们已经准备好图像数据,是时候采用我们所学的知识并将其用于构建经典的或密集的神经网络了。 在本章中,我们将介绍以下主题:
......@@ -65,7 +65,7 @@ ReLu 非线性函数-大于零。
幕后进行了大量数学运算,因此大量非线性的相互作用使机器学习者可以在概念上围绕答案绘制高维数学形状。
# 软最大
# Softmax
在本节中,我们将学习称为`softmax`的输出激活函数。 我们将研究它与输出类的关系,并了解`softmax`如何产生概率。
......@@ -79,7 +79,7 @@ ReLu 非线性函数-大于零。
现在您可能想知道为什么我们应该考虑这一点,因为您可以轻松地从数字`1``2``5`看出`5`是最大的值。 好吧,这个想法是,如果您将事情表示为概率,则可以模拟信心。 从某种意义上讲,您可以在模型之间共享分数,并且知道您的模型实际的自信程度。 另外,不同的模型将在不同的范围内输出不同的数字。 仅仅因为您在尝试的第一个模型中放入了`1``2``5`,这并不意味着它们在另一个模型中具有相同的相对值。 因此,将它们粉碎成概率可以进行比较。 现在,有了这些数学知识,我们就可以开始研究构建实际的神经网络了。 好消息是您实际上不需要记住或知道我们刚才列出的数学。 您只需要记住数学部分的名称,因为在 Keras 中,您使用简单的名称引用了激活函数。
# 培训和测试数据
# 训练和测试数据
在本节中,我们将研究引入训练和测试数据。 我们将研究如何加载实际数据,然后再回顾规范化和一键编码,然后快速讨论为什么我们实际上使用训练和测试数据集。
......@@ -133,7 +133,7 @@ Keras 功能模型
好的,现在该运行模型了。 现在,我们了解了如何将包括`Dropout``Flatten`层在内的模型放到一起,我们将继续使用求解器,这是我们实际执行机器学习模型所使用的。
# 解算
# 优化
在本节中,我们将设置学习和优化功能,编译模型,使其适合训练和测试数据,然后实际运行模型并查看动画,该动画指示对损失和准确性的影响。
......@@ -205,7 +205,7 @@ Keras 功能模型
您可以看到我们的分数不错:整体准确率为 96%。
# 概要
# 总结
在本章中,我们实际上涵盖了很多内容。 我们看到了经典或密集神经网络的结构。 我们了解了激活和非线性,并了解了`softmax`。 然后,我们建立测试和训练数据,并学习了如何使用`Dropout``Flatten`构建网络。 我们还学习了有关求解器的所有知识,或者机器学习的实际学习方式。 然后,我们探索了超参数,最后,我们通过网格搜索对模型进行了微调。
......
......@@ -142,7 +142,7 @@
![](img/d1c6ebed-3fa7-4963-b40f-d5c562899c7c.png)
# 概要
# 总结
我们首先了解了元学习是什么,以及元学习中如何使用单发,少发和零发学习。 我们了解到,支持集和查询集更像是火车集和测试集,但每个类中都有`k`个数据点。 我们还看到了`n`-方式 k 次的含义。 后来,我们了解了不同类型的元学习技术。 然后,我们探索了通过梯度下降学习梯度下降的学习方法,其中我们看到了 RNN 如何用作优化器来优化基础网络。 后来,我们将优化视为快速学习的模型,其中我们使用 LSTM 作为元学习器,以在快速学习环境中进行优化。
......
......@@ -604,7 +604,7 @@ Epoch 13/13
- 0s - loss: 819.8594 - val_loss: 120.3017
```
# 概要
# 总结
在本章中,我们学习了什么是连体网络,以及如何使用连体网络构建人脸和音频识别模型。 我们探索了连体网络的架构,该网络基本上由两个相同的神经网络组成,它们具有相同的权重和架构,并且将这些网络的输出插入到一些能量函数中以了解相似性。
......
......@@ -543,7 +543,7 @@ elif inverse_transform_type == "other":
因此,我们将分心器类重塑为示例,这些示例不在所有类原型的某个阈值距离之内。 我们如何计算该阈值? 首先,我们计算所有类原型的未标记集合`R`中未标记示例之间的标准化距离。 接下来,我们通过将归一化距离的各种统计数据(例如最小,最大,偏度和峰度)输入神经网络来计算每个类原型的阈值。 基于此阈值,我们向类原型添加或忽略未标记的示例。
# 概要
# 总结
在本章中,我们从原型网络开始,我们了解了原型网络如何使用嵌入函数计算类原型,并通过比较类原型和查询集嵌入之间的欧几里得距离来预测查询集的类标签。 之后,我们通过对 omniglot 数据集进行分类,对原型网络进行了实验。 然后,我们了解了高斯原型网络,该网络与嵌入一起还使用协方差矩阵来计算类原型。 之后,我们探索了半原型网络,该网络用于处理半监督类。 在下一章中,我们将学习关系和匹配网络。
......
......@@ -668,7 +668,7 @@ class Matching_network():
tf.train.AdamOptimizer(self.lr).minimize(self.loss_op)
```
# 概要
# 总结
在本章中,我们学习了在几次学习中如何使用匹配网络和关系网络。 我们看到了一个关系网络如何学习支持和查询集的嵌入,并将这些嵌入进行组合并将其馈送到关系函数以计算关系得分。 我们还看到了匹配的网络如何使用两种不同的嵌入函数来学习我们的支持集和查询集的嵌入,以及它如何预测查询集的类。
......
......@@ -779,7 +779,7 @@ M_ = prev_M * tf.expand_dims(1\. - tf.one_hot(prev_indices[:, -1], self.memory_s
M = M + tf.matmul(w, k)
```
# 概要
# 总结
我们看到了神经图灵机如何从内存中存储和检索信息,以及它如何使用不同的寻址机制(例如基于位置和基于内容的寻址)来读写信息。 我们还学习了如何使用 TensorFlow 实现 NTM 以执行复制任务。 然后,我们了解了 MANN 以及 MANN 与 NTM 的不同之处。 我们还了解了 MANN 如何使用最近最少使用的访问方法来克服 NTM 的缺点。
......
......@@ -1063,7 +1063,7 @@ Sampling Next Batch of Tasks
5.`n`次迭代重复步骤 2 到步骤 4。
# 概要
# 总结
在本章中,我们学习了如何找到可在各个任务之间推广的最佳模型参数`θ`,以便我们可以减少梯度步骤,并快速学习新的相关任务。 我们从 MAML 开始,我们看到了 MAML 如何执行元优化来计算最佳模型参数。 接下来,我们看到了对抗性元学习,其中我们使用了干净样本和对抗性样本来查找可靠的初始模型参数。 后来,我们了解了 CAML,并看到了 CAML 如何使用两个不同的参数,一个用于在任务中学习,另一个用于更新模型参数。
......
......@@ -763,7 +763,7 @@ Sampling Next Batch of Tasks
---------------------------------
```
# 概要
# 总结
在本章中,我们学习了 Meta-SGD 和 Reptile 算法。 我们看到了 Meta-SGD 与 MAML 有何不同,以及如何在监督学习和强化学习设置中使用 Meta-SGD。 我们看到了 Meta-SGD 如何学习模型参数以及学习率和更新方向。 我们还了解了如何从头开始构建 Meta-SGD。 然后,我们了解了 Reptile 算法。 我们看到了 Reptile 与 MAML 的不同之处,以及 Reptile 对 MAML 算法的改进。 我们还学习了如何在正弦波回归任务中使用 Reptile。
......
......@@ -476,7 +476,7 @@ Sampling Next Batch of Tasks
---------------------------------
```
# 概要
# 总结
在本章中,我们学习了梯度一致性算法。 我们已经看到了梯度一致性算法如何使用加权梯度来找到更好的初始模型参数`θ`。 我们还看到了这些权重如何与任务梯度的内积和采样批次任务中所有任务的梯度平均值的乘积成正比。 我们还探讨了如何将梯度一致性算法与 MAML 和 Reptile 算法结合使用。 之后,我们看到了如何使用梯度一致性算法在分类任务中找到最佳参数`θ'[i]`
......
......@@ -275,7 +275,7 @@ MIL 中涉及的步骤如下:
再次恭喜您学习了所有重要且流行的元学习算法。 元学习是 AI 的一个有趣且最有前途的领域,它将使我们更接近**广义人工智能****AGI**)。 现在,您已经阅读完本书,可以开始探索元学习的各种进步,并开始尝试各种项目。 学习和元学习!
# 概要
# 总结
在本章中,我们学习了 TAML 来减少任务偏差。 我们看到了两种类型的方法:基于熵的 TAML 和基于不等式的 TAML。 然后,我们探索了元模仿学习,它将元学习与模仿学习相结合。 我们看到了元学习如何帮助模仿学习从更少的模仿中学习。 我们还看到了如何在使用 CACTUS 的无监督学习环境中应用模型不可知元学习。 然后,我们探索了一种称为学习在概念空间中学习的深度元学习算法。 我们看到了深度学习的力量如何促进元学习。
......
......@@ -182,7 +182,7 @@ RL 被广泛用于金融投资组合管理,这是将资金不断重新分配
凭借深度学习和 RL 的统一能力,**深度强化学习****DRL**)在**自然语言处理****NLP**)和**计算机视觉****CV**)领域中得到了极大的发展。。 DRL 已用于文本摘要,信息提取,机器翻译和图像识别,比当前系统具有更高的准确性。
# 概要
# 总结
在本章中,我们学习了 RL 的基础知识以及一些关键概念。 我们了解了 RL 的不同元素和 RL 环境的不同类型。 我们还介绍了各种可用的 RL 平台以及 RL 在各个领域中的应用。
......
......@@ -746,7 +746,7 @@ with tf.Session() as sess:
![](img/00017.jpeg)
# 概要
# 总结
在本章中,我们学习了如何通过安装 Anaconda,Docker,OpenAI Gym,Universe 和 TensorFlow 来设置机器。 我们还学习了如何使用 OpenAI 创建模拟,以及如何训练代理在 OpenAI 环境中学习。 然后,我们了解了 TensorFlow 的基础知识,然后在 TensorBoard 中可视化了图形。
......
......@@ -849,7 +849,7 @@ print (policy_iteration(env))
因此,我们可以得出最佳策略,该策略使用值和策略迭代来解决冻结湖问题,从而指定在每种状态下要执行的操作。
# 概要
# 总结
在本章中,我们了解了什么是马尔可夫链和马尔可夫过程,以及如何使用 MDP 表示 RL 问题。 我们还研究了贝尔曼方程,并解决了贝尔曼方程,从而使用 DP 推导了最优策略。 在下一章第 4 章,“使用蒙特卡洛方法进行游戏”中,我们将研究蒙特卡洛树搜索以及如何使用它进行智能游戏的构建。
......
......@@ -605,7 +605,7 @@ def epsilon_greedy_policy(state, epsilon):
![](img/00110.jpeg)
# 概要
# 总结
在本章中,我们了解了蒙特卡洛方法的工作原理,以及当我们不了解环境模型时如何使用它来解决 MDP。 我们研究了两种不同的方法:一种是用于估计值函数的蒙特卡洛预测,另一种是用于优化值函数的蒙特卡洛控制。
......
......@@ -547,7 +547,7 @@ Q 学习和 SARSA 对许多人来说总是很困惑。 让我们分解一下两
您看得出来差别吗? 在 Q 学习中,我们使用`ε`贪婪策略采取行动,并且在更新 Q 值的同时,我们仅采取最大行动。 在 SARSA 中,我们使用`ε`贪婪策略采取措施,并且在更新 Q 值的同时,我们使用`ε`贪婪策略采取措施。
# 概要
# 总结
在本章中,我们学习了一种克服了蒙特卡洛方法局限性的不同的无模型学习算法。 我们看到了预测和控制方法。 在 TD 预测中,我们根据下一个状态更新了状态的状态值。 在控制方法方面,我们看到了两种不同的算法:Q 学习和 SARSA。
......
......@@ -487,7 +487,7 @@ sns.distplot(banner_selected)
在正常的 MAB 问题中,我们执行操作并获得奖励。 但是对于情境老虎机,我们不仅要单独采取行动,还要采取环境状态。 国家拥有环境。 在这里,状态指定了用户的行为,因此我们将根据状态(用户行为)采取行动(展示广告),从而获得最大的回报(广告点击)。 因此,上下文老虎机被广泛用于根据用户的偏好行为来个性化内容。 它们用于解决推荐系统中面临的冷启动问题。 Netflix 使用上下文盗贼根据用户行为来个性化电视节目的插图。
# 概要
# 总结
在本章中,我们了解了 MAB 问题以及如何将其应用于不同的应用程序。 我们了解了解决探索-利用困境的几种方法。 首先,我们查看了`ε`贪婪策略,在其中我们以概率`epsilon`进行了探索,并以概率 1 `epsilon`进行了探索。 我们查看了 UCB 算法,在该算法中我们选择了具有最大上限值的最佳操作,其次是 TS 算法,在此我们通过 beta 分布获得了最佳操作。
......
......@@ -1052,7 +1052,7 @@ with tf.Session() as sess:
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y: mnist.test.labels}))
```
# 概要
# 总结
在本章中,我们学习了神经网络的实际工作原理,然后使用 TensorFlow 构建了一个神经网络来对手写数字进行分类。 我们还看到了不同类型的神经网络,例如 RNN,可以记住内存中的信息。 然后,我们看到了 LSTM 网络,该网络用于通过保持多个门来将信息保留在内存中(只要需要)来克服消失的梯度问题。 我们还看到了另一个有趣的神经网络,用于识别图像,称为 CNN。 我们看到了 CNN 如何使用不同的图层来理解图像。 之后,我们学习了如何使用 TensorFlow 构建 CNN 以识别时尚产品。
......
......@@ -453,7 +453,7 @@ with tf.Session() as sess:
聚合器层合并这两个流的值,并产生`Q`函数。 因此,决斗网络比标准 DQN 架构更有效,更健壮。
# 概要
# 总结
在本章中,我们学习了一种非常流行的深度强化学习算法,称为 DQN。 我们看到了如何使用深度神经网络来近似 Q 函数。 我们还学习了如何建立代理来玩 Atari 游戏。 后来,我们研究了 DQN 的一些改进,例如双 DQN,它用于避免高估 Q 值。 然后,我们研究了优先级经验重放,优先级经验和决斗的网络架构,该架构将 Q 函数计算分为两个流,分别称为值流和优势流。
......
......@@ -579,7 +579,7 @@ DARQN 的架构如下所示:
* **软注意力**:我们知道,卷积层产生的特征映射将作为输入提供给关注层,然后生成上下文向量。 轻描淡写地,这些上下文向量只是卷积层产生的所有输出(特征映射)的加权平均值。 根据功能的相对重要性选择权重。
* **硬注意力**:硬注意力,根据某些位置选择策略`π`,我们仅关注图像在特定时间步长`t`上的特定位置。 该策略由神经网络表示,其权重是策略参数,网络的输出是位置选择概率。 但是,硬注意力不比软注意力好多少。
# 概要
# 总结
在本章中,我们学习了如何使用 DRQN 记住有关先前状态的信息,以及它如何克服部分可观察的 MDP 问题。 我们已经看到了如何训练我们的特工使用 DRQN 算法玩《毁灭战士》游戏。 我们还了解了 DARQN 作为 DRQN 的改进,它在卷积层的顶部增加了一个关注层。 在此之后,我们看到了两种类型的注意力机制: 即软硬关注。
......
......@@ -439,7 +439,7 @@ tensorboard --logdir=logs --port=6007 --host=127.0.0.1
![](img/00303.jpeg)
# 概要
# 总结
在本章中,我们学习了 A3C 网络的工作方式。 在 A3C 中,“异步”表示多个代理通过与环境的多个副本进行交互而独立工作,“优势”表示“优势”功能,即 Q 函数和值函数之间的差异,“演员评论家”是指演员评论家网络,其中演员网络负责生成策略,评论家网络评估由演员网络生成的策略。 我们已经了解了 A3C 的工作原理,并了解了如何使用该算法解决山地车问题。
......
......@@ -672,7 +672,7 @@ Kakade 和 Langford 从`(1)`得出以下方程式:
`S`是熵增。
# 概要
# 总结
我们从策略梯度方法开始,该方法无需 Q 函数即可直接优化策略。 我们通过解决 Lunar Lander 游戏了解了策略梯度,并研究了 DDPG,它具有策略梯度和 Q 函数的优点。
......
......@@ -734,7 +734,7 @@ env.monitor.close()
![](img/00407.gif)
# 概要
# 总结
在本章中,我们学习了如何详细实现决斗 DQN。 我们从用于游戏画面预处理的基本环境包装器功能开始,然后定义了`QNetworkDueling`类。 在这里,我们实现了决斗 Q 网络,该网络将 DQN 的最终全连接层分为值流和优势流,然后将这两个流组合以计算`q`值。 之后,我们看到了如何创建回放缓冲区,该缓冲区用于存储经验并为网络训练提供经验的小批量样本,最后,我们使用 OpenAI 的 Gym 初始化了赛车环境并训练了我们的代理。 在下一章第 13 章,“最新进展和后续步骤”中,我们将看到 RL 的一些最新进展。
......
......@@ -165,7 +165,7 @@ MAXQ 值函数分解是 HRL 中最常用的算法之一。 让我们看看 MAXQ
RL 周围有各种改进和进步。 现在,您已经阅读完本书,可以开始探索强化学习的各种进步,并开始尝试各种项目。 学习和加强!
# 概要
# 总结
在本章中,我们了解了 RL 的一些最新进展。 我们看到了 I2A 架构如何将想象力核心用于前瞻性计划,然后如何根据人的喜好来训练代理。 我们还了解了 DQfd,它可以通过从演示中学习来提高 DQN 的性能并减少其培训时间。 然后,我们研究了事后的经验回放,从中我们了解了代理商如何从失败中学习。
......
......@@ -558,7 +558,7 @@ Figure 1.14: GAN architecture 
自编码器用于多种目的,例如学习数据的潜在表示,降噪和特征检测。 降噪自编码器将实际输入的噪声版本作为其输入。 他们尝试构建实际的输入,以作为重建的标签。 类似地,自编码器可以用作生成模型。 可以用作生成模型的一类这样的自编码器称为**变分自编码器**。 当前,变分自编码器和 GAN 作为图像处理的生成模型非常受欢迎。
# 概要
# 总结
现在,我们到了本章的结尾。 我们已经研究了人工神经网络的几种变体,包括用于图像处理目的的 CNN 和用于自然语言处理目的的 RNN。 此外,我们将 RBM 和 GAN 视为生成模型,将自编码器视为无监督方法,可以解决许多问题,例如降噪或解密数据的内部结构。 此外,我们还谈到了强化学习,这对机器人技术和 AI 产生了重大影响。
......
......@@ -1216,7 +1216,7 @@ Processing Time 138.52878069877625 secs
从前面的日志中可以看到,假设我们刚刚使用回归得分将模型映射到最接近的严重性条件,该模型可实现约 66% 的不错的验证准确性和`0.466`的二次 Kappa 得分。 建议读者进行实验,看看是否基于预测的二级模型对进行评分,并且眼睛是左眼还是右眼比将朴素的评分映射到最近的严重性类别给出了更好的结果。
# 概要
# 总结
在本章中,我们介绍了迁移学习的实际方面,以解决医疗保健领域的现实问题。 希望读者通过尽可能尝试定制这些示例来进一步构建这些概念。
......
......@@ -963,7 +963,7 @@ Decoded sentence: Où fut ?
```
# 概要
# 总结
读者现在应该对几种机器翻译方法以及神经翻译机器与传统机器有何不同有很好的理解。 现在,我们还应该深入了解如何从头开始构建神经机器翻译系统,以及如何以有趣的方式扩展该系统。 借助提供的信息和实现演示,建议读者探索其他并行语料库数据集。
......
......@@ -742,7 +742,7 @@ Epoch: [ 0] [ 19/ 156] time: 13.7525
我们可以看到 DiscoGAN 在将任一域中的图像转换为另一域中的高质量逼真的图像方面做得非常出色。
# 概要
# 总结
现在,我们到了本章的结尾。 您现在应该精通 DiscoGAN 的技术知识和实现复杂性。 我们在本章中探讨的概念可用于实现各种生成性对抗性网络,这些网络具有适合当前问题的细微变化。 DiscoGAN 网络的端到端实现位于 GitHub 存储库中,位于[这里](https://github.com/PacktPublishing/Intelligent-Projects-using-Python/tree/master/Chapter04)
......
......@@ -856,6 +856,6 @@ python Video_seq2seq.py process_main --path_prj '/media/santanu/9eb9b6dc-b380-48
该项目的代码可以在 [GitHub](https://github.com/PacktPublishing/Python-Artificial-Intelligence-Projects/tree/master/Chapter05) 中找到。 `VideoCaptioningPreProcessing.py`模块可用于预处理视频并创建卷积神经网络功能,而`Video_seq2seq.py`模块可用于训练端到端视频字幕系统和运行推断。
# 概要
# 总结
现在,我们已经完成了令人兴奋的视频字幕项目的结尾。 您应该能够使用 TensorFlow 和 Keras 构建自己的视频字幕系统。 您还应该能够使用本章中介绍的技术知识来开发其他涉及卷积神经网络和循环神经网络的高级模型。 下一章将使用受限玻尔兹曼机构建智能的推荐系统。 期待您的参与!
\ No newline at end of file
......@@ -711,7 +711,7 @@ test RMSE : 1.1999306704742303
建议您将最终收视率预测作为对每个电影收视率预测的多项式概率分布的收视率的期望值,并与采用最高收视率的方法进行比较,了解多项式分布的概率的效果如何。 可以在[这个页面](https://www.cs.toronto.edu/~rsalakhu/papers/rbmcf.pdf)上找到用于协同过滤的 RBM 论文。受限玻尔兹曼机有关的代码位于[这里](https://github.com/PacktPublishing/Intelligent-Projects-using-Python/blob/master/Chapter06/rbm.py)
# 概要
# 总结
阅读完本章后,您现在应该能够使用受限玻尔兹曼机构建智能推荐系统,并根据您的领域和要求以有趣的方式对其进行扩展。 有关本章中说明的项目的详细实现,请参考[此项目的 GiHub 链接](https://github.com/PacktPublishing/Intelligent-Projects-using-Python/blob/master/Chapter06)
......
......@@ -762,7 +762,7 @@ org.tensorflow:tensorflow-android:1.7.0
正如您在前面的两个插图中看到的那样,移动电影评论分级应用程序在为电影评论提供合理的分级方面做得很好。
# 概要
# 总结
完成本章后,读者应该对如何使用 TensorFlow 的移动功能在 Android 应用程序中部署深度学习模型有一个清晰的认识。 本章所涉及的技术和实现细节将对读者有所帮助,帮助他们构建智能 Android 移动应用程序并以有趣的方式扩展它们。 该项目的详细代码位于[这里](https://github.com/PacktPublishing/Python-Artificial-Intelligence-Projects/Chapter07)
......
......@@ -413,7 +413,7 @@ python chatbot.py --max_vocab_size 50000 --max_seq_len 30 --embedding_dim 100 --
| `@__cname__` is the worst ISP I've ever had. | `@__cname__` Hey there! Can you dm us your account's email address? We'll take a look backstage / dn https://t.co/ldfdzrinat |
| `@__cname__` fix your app it won't even open. | `@__cname__` Hi there! We don't have any info on this issue. Please send us a dm with your name and phone number and the full service address. |
# 概要
# 总结
现在,我们到本章的结尾。 看完本章中说明的与聊天机器人和序列到序列模型相关的各种概念之后,读者现在应该能够构建自己的聊天机器人实现并以有趣的方式对其进行扩展。 众所周知,序列到序列模型不仅适用于聊天机器人,还适用于整个自然语言处理领域,例如机器翻译。 本章的代码位于 [GitHub](https://github.com/PacktPublishing/Python-Artificial-Intelligence-Projects/tree/master/Chapter08)
......
......@@ -879,7 +879,7 @@ def model_save(path,name,agent,R):
图 9.5(B):经过充分培训后,汽车成功驾驶
# 概要
# 总结
至此,我们到了本章的结尾。 本章中讨论的主题将帮助您快速掌握强化学习范例,并使您能够构建智能 RL 系统。 另外,希望读者将在该项目中学到的技术应用于其他基于 RL 的问题。
......
......@@ -717,6 +717,6 @@ python captcha_gan.py generate-captcha --gen_input_dim 100 --num_images 200 --mo
图 10.8:使用经过训练的 GAN 网络的生成器生成的验证码
# 概要
# 总结
这样,我们到了本章的结尾。 与本章相关的所有代码都可以[在 GitHub 链接中找到](https://github.com/PacktPublishing/Intelligent-Projects-using-Python/tree/master/Chapter10)。 现在,您将对深度学习如何影响验证码有一个清晰的认识。 在频谱的一端,我们可以看到使用具有深度学习的 AI 应用程序的机器人如何轻松地解决 CAPTCHA。 但是,另一方面,我们看到了如何使用深度学习来利用给定的数据集并根据随机噪声创建新的验证码。 您可以在本章中扩展有关生成对抗网络的技术知识,以使用深度学习构建智能的验证码生成系统。 现在,我们到本书的结尾。 我希望通过九个基于人工智能的实用应用程序的旅程是一次充实的旅程。 祝一切顺利!
\ No newline at end of file
......@@ -331,7 +331,7 @@ def CMatrix(CM, labels=['pay', 'default']):
根据无免费午餐定理,没有一个模型可以最好地解决每个数据集中的每个问题。 这意味着整体学习不能总是胜过简单的方法,因为有时简单的方法比复杂的方法表现更好。 因此,对于每个机器学习问题,我们必须使用简单的方法而不是复杂的方法,然后评估这两种方法的性能以获得最佳结果。
# 概要
# 总结
在本章中,我们介绍了不同的集成方法,例如引导程序采样,装袋,随机森林和增强方法,并通过一些示例说明了它们的工作原理。 然后,我们将它们用于回归和分类。 对于回归,我们以菱形数据集为例,还训练了一些 KNN 和其他回归模型。 后来,对它们的性能进行了比较。 为了进行分类,我们以信用卡数据集为例。 同样,我们训练了所有回归模型。 我们比较了它们的性能,发现随机森林模型的性能最佳。
......
......@@ -376,7 +376,7 @@ RF_tunned_test_mse = mean_squared_error(y_pred=RF_classifier.predict(X_test), y_
在这里,经过调整的模型比未调整的模型提高了 4.6%,这实际上非常好。 在这些模型中,提高 1% -3% 的百分比也可能具有巨大的实际意义。
# 概要
# 总结
在本章中,我们学习了交叉验证以及各种交叉验证方法,包括保持交叉验证和 k 折交叉验证。 我们知道 k 折交叉验证不过是多次进行保持交叉验证而已。 我们使用`diamond`数据集实现了 k 折交叉验证。 我们还使用 K 折交叉验证比较了不同的模型,并找到了性能最佳的模型,即随机森林模型。
......
......@@ -379,7 +379,7 @@ RFE 是我们将使用`RandomForestClassifier`模型的第三种技术,请记
现在,**不可减少的误差**项是该随机项的方差。 您对此词没有任何控制权。 总会有一个不可减少的错误成分。 因此,您的模型总是会出错; 无论您拥有多少个特征和数据点,您的模型都不能总是 100% 正确的。 我们必须尝试使用​​更好和更复杂的方法来执行特征工程,并尝试将我们的估计近似为真实函数。 仅仅因为您使用的是更复杂的模型或您有更多的数据,您的模型就不会是完美的,并且您将无法准确预测`y`是什么,因为几乎所有过程都存在需要处理的随机性。 这是一个非常有趣的部分的结尾。
# 概要
# 总结
在本章中,我们讨论了特征选择方法,如何区分有用的特征和对预测没有帮助的特征。 我们讨论了降维,并学习了如何在`scikit-learn`中执行 PCA。 我们还讨论了特征工程,并尝试在迄今为止一直在使用的数据集中提出新特征。 最后,我们尝试通过提供新功能以及使用本章学到的所有技术来改进信用卡模型。 希望您喜欢本章。
......
......@@ -307,7 +307,7 @@ adder_node = mult_node + quadruple_node
我们也可以使用一些线性代数进行此操作,但请记住,机器学习的目标是实际从数据中学习参数,在这种情况下,我们已经使用 TensorFlow 运行了我们的第一个机器学习模型。
# 概要
# 总结
在本章中,我们讨论了人工神经网络,深度学习以及深度学习模型的要素。 然后,我们安装了 TensorFlow,并了解了我们在 TensorFlow 中使用的核心概念。
......
......@@ -430,6 +430,6 @@ TensorFlow,`tf.nn.elu`中获得此功能,从中您可以获得许多功能
通过计算,我们得出的召回得分为`82.53`%,准确度为`34.02`%,准确度为`60.7`%。
# 概要
# 总结
在本章中,我们学习了如何使用 TensorFlow 进行预测。 我们研究了 MNIST 数据集和使用该数据集的模型分类。 我们遇到了 DNN 模型的元素以及 DNN 的构建过程。 后来,我们开始研究 DNN 的回归和分类。 我们对手写数字进行了分类,并进一步了解了 TensorFlow 中的构建模型。 这使我们到本书的结尾! 我们学习了如何使用集成算法来生成准确的预测。 我们应用了各种技术来组合和构建更好的模型。 我们学习了如何有效执行交叉验证。 我们还实现了各种技术来解决预测分析领域中的当前问题。 最好的部分是,我们使用建立的 DNN 模型来解决分类和回归问题。 本书帮助我们实现了各种机器学习技术,以构建高级的预测模型并将其应用于现实世界。
\ No newline at end of file
......@@ -235,7 +235,7 @@ import tensorflow_datasets as tfdsdataset = tfds.load(name="mnist", split=tfds.S
从该库中获取的数据集是`tf.data.Dataset`对象,这些对象...
# 概要
# 总结
TF 2.0 包含许多主要更改,例如 API 清理,热切执行和面向对象的哲学。 API 清理包括弃用具有等效标准 Python 库的冗余模块,以及删除`tf.contrib`模块并将其重新组织到主要 API 和 TensorFlow Addons 包中。 急切的执行和面向对象的 API 使调试更加有效和直接,并且导致变量被视为普通的 Python 变量。 这意味着不再需要变量集合和其他专用于处理全局变量的 API,因此在 TF 2.0 中已将其删除。
......
......@@ -463,7 +463,7 @@ Value outside session: 42
TF 2.0 与 Python 编程语言紧密集成。 急切的执行使张量可以无缝用作本机 Python 对象,而不必担心评估计算图以及管理会话或基础硬件。 好处不止于此。 急切的执行使程序员能够利用宿主编程语言的强大控制流结构。 TensorFlow 代码现在与平台的其余部分更加直观地集成,这为开发人员带来了巨大的价值,因为它不再需要特殊的流控制结构。 这也为实验,调试和笔记本环境增加了重要价值。
# 概要
# 总结
在本章中,我们了解了 TF 2.0 中可用于模型构建,训练,保存和加载的高级抽象。 深入研究 Keras API,我们了解了如何通过使用`Sequential``functional` API 组合图层来构建模型。 我们还了解了如何利用 Keras API 的高级抽象来训练模型。 本章还研究了在各种配置和模式下加载和保存模型的复杂性。 我们已经了解了保存模型,架构和权重的不同方法,本章对每种方法进行了深入的说明,并描述了何时应该选择一种方法。
......
......@@ -474,7 +474,7 @@ import tensorflow_datasets as tfdstfds.list_builders()
['abstract_reasoning', 'bair_robot_pushing_small', 'caltech101', ...
```
# 概要
# 总结
本章以简单而富于启发性的方式展示了使用 TF 2.0 API 设计和构建输入数据管道的总体方法。 它提供了数据管道的不同组件的构建块,并提供了构建管道所需的 API 的详细信息。 提供了 TF 1.x API 和 TF 2.0 API 之间的比较。
......
......@@ -580,7 +580,7 @@ WIT 的某些功能是可以将具有相同工作流程的多个模型进行比
![](img/399c1540-e609-4b46-8f9e-529b55c2beba.png)
# 概要
# 总结
本章详细介绍了如何使用 TF 2.0 `tf.keras` API 构建训练管道,以及如何使用分布策略在 GPU 上以分布方式在 GPU 上使用各种可用的损失函数,优化器和超参数查看构建,编译和拟合模型。 。 它还详细介绍了如何在训练时保存,恢复模型以进行将来的训练以及进行推断。 TensorBoard 是 TF 2.0 的主要优势之一,我们提供了有关如何有效地使用它来监视训练性能损失和准确性以及如何调试和分析它的详细信息。
......
......@@ -352,7 +352,7 @@ Detailed resources for getting started with TensorFlow.js are available at the f
在过去几年中,智能手机的使用呈指数增长,并且以不减缓的方式持续增长。 其他物联网设备在我们的日常生活中也变得越来越普遍。 使用率的这些上升趋势对机器学习系统产生了有趣的影响。 与普通主机相比,这些平台通常资源有限。 结果,需要其他优化来在此类设备上进行推理。 TensorFlow 平台支持构建机器学习和基于深度学习的应用程序,这些应用程序可以在不同类型的边缘设备(例如手机和其他 IoT 设备)上运行。 实现此目的的主要工具是...
# 概要
# 总结
在本章中,我们详细介绍了推理阶段。 首先,通过对端到端机器学习工作流的外观有了基本了解,我们了解了每个阶段涉及的主要步骤。 我们还了解了将模型从训练阶段转移到推理阶段时所起作用的不同抽象。 详细了解`SavedModel`格式和基础数据流模型,我们了解了可用于构建和导出模型的不同选项。 我们还了解了`tf.function``tf.autograph`等出色功能,使我们能够使用本地 Python 代码构建 TensorFlow 图。 在本章的后半部分,我们学习了如何构建推理管道,以便在后端服务器,Web 浏览器甚至边缘设备等不同环境中运行 TensorFlow 模型。
......
......@@ -179,7 +179,7 @@ Google 为语音和视觉应用发布了自己的制造商套件,称为 AIY。
和以前一样,可以按照[这里](https://aiyprojects.withgoogle.com/vision/#assembly-guide)。 该设备有一个简单的...
# 概要
# 总结
TFLite 是 TF2.0 的一项功能,它采用 TF 模型并对其进行压缩和优化,以在嵌入式 Linux 设备或低功耗和低二进制设备上运行。 可以通过三种方式将 TF 模型转换为 TFLite 模型:从已保存的模型,`tf.keras`模型或具体函数。 转换模型后,将创建一个`.tflite`文件,然后可以将其传输到所需的设备并使用 TFLite 解释器运行。 该模型经过优化以使用硬件加速,并以`FlatBuffer`格式存储,以提高读取速度。 可以将其他优化技术应用于该模型,例如量化,以最小的精度权衡将 32 位浮点数转换为 8 位定点数。 可以在 TFLite 上运行的某些设备是 Edge TPU,NVIDIA Jetson Nano 和 Raspberry Pi。 Google 还提供了两个工具包,可为用户提供创建与视觉和语音相关的机器学习应用程序所需的硬件。
......
......@@ -385,7 +385,7 @@ TF 2.0 基本 API 将包括针对任务的更多预制估算器,例如增强
TensorFlow Medium 博客还提供有关 TensorFlow 库和服务状态的许多更新,并且源源不断的有用新闻和...
# 概要
# 总结
本章介绍了两种将 TF 1.x 代码转换为 TF 2.0 代码的方法。 第一种方法是使用随附的升级脚本,该脚本会将所有 API 调用从`tf.x`更改为`tf.compat.v1.x`。 这允许 TF 1.x 代码在 TF 2.0 中运行,但不会从 TF 2.0 中带来的升级中受益。 第二种方法是将 TF 1.x 更改为惯用的 TF 2.0 代码,这涉及两个步骤。 第一步是将所有模型创建代码更改为 TF 2.0 代码,这涉及使用对函数的`sess.run`调用,以及将占位符和字典馈入函数的参数来更改张量。 使用`tf.layers` API 创建的模型与`tf.keras.layers`具有一对一的比较。 第二步是通过使用`tf.keras.Model.fit`或带有`tf.GradientTape`的自定义训练循环来升级训练管道。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册