提交 1c2673bc 编写于 作者: W wizardforcel

2020-08-06 11:31:17

上级 cf7171c7
......@@ -419,7 +419,7 @@ image_height=vgg.vgg_16.default_image_size
image_width=vgg.vgg_16.default_image_size
```
# 使用 TensorFlow 中预训练的 VGG16 进行图像分类
# TensorFlow 中的预训练 VGG16 的图像分类
现在让我们首先尝试预测测试图像的类别,而不进行再训练。首先,我们清除默认图并定义图像的占位符:
......@@ -568,7 +568,7 @@ Probability 1.81% of [abaya]
从未见过我们数据集中的图像,并且对数据集中的类没有任何了解的预训练模型已正确识别斑马,马车,鸟和熊。它没能认出长颈鹿,因为它以前从未见过长颈鹿。我们将在我们的数据集上再训练这个模型,只需要更少的工作量和 800 个图像的较小数据集大小。但在我们这样做之前,让我们看看在 TensorFlow 中进行相同的图像预处理。
# TensorFlow 中的图像预处理,用于预训练的 VGG16
# 为 TensorFlow 中的预训练 VGG16 预处理图像
我们为 TensorFlow 中的预处理步骤定义一个函数,如下所示:
......@@ -615,7 +615,7 @@ init = slim.assign_from_checkpoint_fn(
我们建议您将预处理管道与 TensorFlow 模型训练和预测代码分开。 保持独立使其具有模块化并具有其他优势,例如您可以保存数据以便在多个模型中重复使用。
# 使用 TensorFlow 中的再训练的 VGG16 进行图像分类
# TensorFlow 中的再训练 VGG16 的图像分类
现在,我们将为 COCO 动物数据集再训练 VGG16 模型。让我们从定义三个占位符开始:
......@@ -836,7 +836,7 @@ Probability 3.65% of [giraffe]
现在让我们对 Keras 进行相同的分类和再训练。您将看到我们可以轻松地使用较少量的代码在 Keras 中使用 VGG16 预训练模型。
# 使用 Keras 中预训练的 VGG16 进行图像分类
# Keras 中的预训练 VGG16 的图像分类
加载模型是一个单行操作:
......@@ -959,7 +959,7 @@ Probability 2.05% of [bath towel]
它无法识别绵羊,长颈鹿以及狗的图像被裁剪出来的最后一张噪音图像。现在,让我们用我们的数据集再训练 Keras 中的模型。
# 使用 Keras 中的再训练 VGG16 进行图像分类
# Keras 中的再训练 VGG16 的图像分类
让我们使用 COCO 图像数据集来再训练模型以微调分类任务。我们将删除 Keras 模型中的最后一层,并添加我们自己的完全连接层,其中`softmax`激活 8 个类。我们还将通过将前 15 层的`trainable`属性设置为`False`来演示冻结前几层。
......@@ -1223,7 +1223,7 @@ image_height=inception.inception_v3.default_image_size
image_width=inception.inception_v3.default_image_size
```
# 使用 TensorFlow 中的 InceptionV3 进行图像分类
# TensorFlow 中的 InceptionV3 的图像分类
图像分类与使用 VGG 16 模型的上一节中说明的相同。 InceptionV3 模型的完整代码如下:
......@@ -1351,7 +1351,7 @@ Probability 1.55% of [pay-phone, pay-station]
虽然它在与 VGG 模型几乎相同的地方失败了,但并不算太糟糕。现在让我们用 COCO 动物图像和标签再训练这个模型。
# 使用 TensorFlow 中的再训练的 InceptionV3 进行图像分类
# TensorFlow 中的再训练 InceptionV3 的图像分类
InceptionV3 的再训练与 VGG16 不同,因为我们使用 softmax 激活层作为输出,`tf.losses.softmax_cross_entropy()`作为损耗函数。
......
......@@ -669,7 +669,7 @@ s_bounds[1] = (-1.0,1.0)
s_bounds[3] = (-1.0,1.0)
```
# 使用 Q-Table 进行 Q-Learning
# 使用 Q-Table Q-Learning
您可以在`ch-13b.ipynb`中按照本节的代码进行操作。 由于我们的离散空间的尺寸为`[10,10,10,10]`,因此我们的 Q 表的尺寸为`[10,10,10,10,2]`
......@@ -762,7 +762,7 @@ Policy:policy_q_table, Min reward:8.0, Max reward:180.0, Average reward:17.592
我们对算法的实现很容易解释。但是,您可以对代码进行修改以将探索率设置为最初,然后随着时间步长的过去而衰减。同样,您还可以实现学习和折扣率的衰减逻辑。让我们看看,由于我们的 Q 函数学得更快,我们是否可以用更少的剧集获得更高的奖励。
# Q-Network 或深度 Q 网络(DQN)的 Q-Learning
# 使用 Q-Network 或深度 Q 网络(DQN)的 Q-Learning
在 DQN 中,我们将 Q-Table 替换为神经网络(Q-Network),当我们使用探索状态及其 Q 值连续训练时,它将学会用最佳动作进行响应。因此,为了训练网络,我们需要一个存储游戏内存的地方:
......
......@@ -99,7 +99,7 @@ def display_images(images):
欢迎您探索并尝试其他最佳实践。
# 使用 TensorFlow 的简单的 GAN
# TensorFlow 中的简单的 GAN
您可以按照 Jupyter 笔记本中的代码`ch-14a_SimpleGAN`
......@@ -313,7 +313,7 @@ with tf.Session() as tfs:
正如我们所看到的那样,生成器在周期 0 中只产生噪声,但是在周期 350 中,它经过训练可以产生更好的手写数字形状。您可以尝试使用周期,正则化,网络架构和其他超参数进行试验,看看是否可以产生更快更好的结果。
# 使用 Keras 的简单的 GAN
# Keras 中的简单的 GAN
您可以按照 Jupyter 笔记本中的代码`ch-14a_SimpleGAN`
......@@ -546,7 +546,7 @@ for epoch in range(n_epochs+1):
GAN 有如此多的变化,它将需要另一本书来涵盖所有不同类型的 GAN。但是,实现技术几乎与我们在此处所示的相似。
# 使用 TensorFlow 和 Keras 的深度卷积 GAN
# TensorFlow 和 Keras 中的深度卷积 GAN
您可以按照 Jupyter 笔记本中的代码`ch-14b_DCGAN`
......
# 十五、使用 TensorFlow 集群的分布式模型
# 十五、TensorFlow 集群的分布式模型
之前我们学习了如何使用 Kubernetes,Docker 和 TensorFlow 服务在生产中大规模运行 TensorFlow 模型。 TensorFlow 服务并不是大规模运行 TensorFlow 模型的唯一方法。 TensorFlow 提供了另一种机制,不仅可以运行,还可以在多个节点或同一节点上的不同节点和不同设备上训练模型。 在第 1 章,TensorFlow 101 中,我们还学习了如何在不同设备上放置变量和操作。在本章中,我们将学习如何分发 TensorFlow 模型以在多个节点上的多个设备上运行。
......
......@@ -161,7 +161,7 @@ InvalidArgumentError: assertion failed: [[-2 0 0]...]
assert_op = tf.assert_greater_equal(x,0)
```
# 使用 TensorFlow 调试器(`tfdbg`)进行调试
# 使用 TensorFlow 调试器(`tfdbg`)调试
TensorFlow 调试器(`tfdbg`)与其他常用调试器(如`pdb``gdb`)的工作方式相同。要使用调试器,该过程通常如下:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册