Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
D_ACMER
apachecn-dl-zh
提交
7170d2f3
A
apachecn-dl-zh
项目概览
D_ACMER
/
apachecn-dl-zh
与 Fork 源项目一致
Fork自
OpenDocCN / apachecn-dl-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
apachecn-dl-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7170d2f3
编写于
8月 05, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-08-05 10:42:48
上级
6981f379
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
27 addition
and
27 deletion
+27
-27
docs/mastering-tf-1x-zh/ch02.md
docs/mastering-tf-1x-zh/ch02.md
+1
-1
docs/mastering-tf-1x-zh/ch03.md
docs/mastering-tf-1x-zh/ch03.md
+6
-6
docs/mastering-tf-1x-zh/ch12.md
docs/mastering-tf-1x-zh/ch12.md
+20
-20
未找到文件。
docs/mastering-tf-1x-zh/ch02.md
浏览文件 @
7170d2f3
...
...
@@ -151,7 +151,7 @@ final loss=1.6131552457809448
在撰写本文时,
[
TFSlim 的文档页面在此链接中被发现为空
](
https://www.tensorflow.org/api_docs/python/tf/contrib/slim
)
。 但是,
[
可以在此链接的源代码中找到一些文档
](
https://github.com/tensorflow/tensorflow/tree/r1.4/tensorflow/contrib/slim
)
。
我们将使用 TFSlim 来学习如何在后面的章节中使用预训练的模型,如 VGG16 和 Inception
V3。
我们将使用 TFSlim 来学习如何在后面的章节中使用预训练的模型,如 VGG16 和 InceptionV3。
# TFLearn
...
...
docs/mastering-tf-1x-zh/ch03.md
浏览文件 @
7170d2f3
...
...
@@ -54,7 +54,7 @@ Keras 的简单工作流程如下:
我们来看看每个步骤。
您可以使用代码包中包含的 Jupyter
Notebook
`ch-03_Keras_101`
来遵循本章中的代码示例。 尝试修改笔记本中的代码以探索各种选项。
您可以使用代码包中包含的 Jupyter
笔记本
`ch-03_Keras_101`
来遵循本章中的代码示例。 尝试修改笔记本中的代码以探索各种选项。
# 创建 Keras 模型
...
...
@@ -100,11 +100,11 @@ model = Model(inputs=[i1,i2,i3], outputs=[o1,o2,o3])
# Keras 层
Keras 为网络架构的简单构建提供了几个内置层类。以下部分概述和描述了 Keras
2 在撰写本书时提供的各种类型的层。
Keras 为网络架构的简单构建提供了几个内置层类。以下部分概述和描述了 Keras2 在撰写本书时提供的各种类型的层。
# Keras 核心层
Keras 核心层实现基本操作,几乎用于各种网络架构。下表给出了 Keras
2 提供的层的摘要和说明:
Keras 核心层实现基本操作,几乎用于各种网络架构。下表给出了 Keras2 提供的层的摘要和说明:
|
**层名称**
|
**描述**
|
| --- | --- |
...
...
@@ -286,7 +286,7 @@ model = Model(inputs=input, outputs=output)
compile
(
self
,
optimizer
,
loss
,
metrics
=
None
,
sample_weight_mode
=
None
)
```
compile
方法有三个参数:
`compile`
方法有三个参数:
*
`optimizer`
:您可以指定自己的函数或 Keras 提供的函数之一。此函数用于更新优化迭代中的参数。 Keras 提供以下内置优化器函数:
*
`SGD`
...
...
@@ -326,7 +326,7 @@ fit(self, x, y, batch_size=32, epochs=10, verbose=1, callbacks=None,
class_weight
=
None
,
sample_weight
=
None
,
initial_epoch
=
0
)
```
我们不会详细介绍这种方法的参数; 您可以在
[
Keras 网站
](
https://keras.io/models/sequential/
)
上阅读详细信息。
我们不会详细介绍这种方法的参数; 您可以在
[
Keras 网站
](
https://keras.io/models/sequential/
)
上阅读详细信息。
对于我们之前创建的示例模型,使用以下代码训练模型:
...
...
@@ -356,7 +356,7 @@ Keras 提供了几个补充基本工作流程的附加模块(附加函数在
*
`datasets`
模块提供了多种函数,可以快速访问几个流行的数据集,如 CIFAR10 图像,CIFAR100 图像,IMDB 电影评论,路透社新闻专线主题,MNIST 手写数字和波士顿房价。
*
`initializers`
模块提供了几种设置层初始随机权重参数的函数,如
`Zeros`
,
`Ones`
,
`Constant`
,
`RandomNormal`
,
`RandomUniform`
,
`TruncatedNormal`
,
`VarianceScaling`
,
`Orthogonal`
,
`Identity`
,
`lecun_normal`
,
`lecun_uniform`
,
`glorot_normal`
,
`glorot_uniform`
,
`he_normal`
和
`he_uniform`
。
*
`models`
模块提供了几种恢复模型架构和权重的函数,如
`model_from_json`
,
`model_from_yaml`
,和
`load_model`
。可以使用
`model.to_yaml()`
和
`model.to_json()`
方法保存模型架构。通过调用
`model.save()`
方法可以保存模型权重。权重保存在 HDF5 文件中。
*
`applications`
模块提供了几种预先构建和预训练的模型,例如 Xception,VGG16,VGG19,ResNet50,Inception
V3,InceptionResNet
V2 和 MobileNet。我们将学习如何使用预建模型来预测我们的数据集。我们还将学习,如何使用来自略有不同的域的数据集,再训练
`applications`
模块中的预训练模型。
*
`applications`
模块提供了几种预先构建和预训练的模型,例如 Xception,VGG16,VGG19,ResNet50,Inception
V3,InceptionResNet
V2 和 MobileNet。我们将学习如何使用预建模型来预测我们的数据集。我们还将学习,如何使用来自略有不同的域的数据集,再训练
`applications`
模块中的预训练模型。
这就结束了我们对 Keras 的简要介绍,这是 TensorFlow 的高级框架。我们将在本书中提供使用 Keras 构建模型的示例。
...
...
docs/mastering-tf-1x-zh/ch12.md
浏览文件 @
7170d2f3
...
...
@@ -16,8 +16,8 @@
*
在 TensorFlow 中使用
**再训练的**
VGG16 进行图像分类
*
使用 Keras 中预训练的 VGG16 进行图像分类
*
使用
**再训练的**
VGG16 在 Keras 中进行图像分类
*
使用 TensorFlow 中的 Inception
v
3 进行图像分类
*
在 TensorFlow 中使用
**再训练的**
Inception
v
3 进行图像分类
*
使用 TensorFlow 中的 Inception
V
3 进行图像分类
*
在 TensorFlow 中使用
**再训练的**
Inception
V
3 进行图像分类
# ImageNet 数据集
...
...
@@ -96,18 +96,18 @@ inet.load_data(n_classes=1000)
| AlexNet | | | 15.3% |
<https://www.cs.toronto.edu/~fritz/absps/imagenet.pdf>
|
| Inception 也称为 Inception V1 | 69.8 | 89.6 | 6.67% |
<https://arxiv.org/abs/1409.4842>
|
| BN-Inception-V2 也称为 Inception V2 | 73.9 | 91.8 | 4.9% |
<https://arxiv.org/abs/1502.03167>
|
| Inception
v
3 | 78.0 | 93.9 | 3.46% |
<https://arxiv.org/abs/1512.00567>
|
| Inception
V
3 | 78.0 | 93.9 | 3.46% |
<https://arxiv.org/abs/1512.00567>
|
| Inception V4 | 80.2 | 95.2 | |
<http://arxiv.org/abs/1602.07261>
|
| Inception-Resnet-V2 | 80.4 | 95.2 | |
<http://arxiv.org/abs/1602.07261>
|
| VGG16 | 71.5 | 89.8 | 7.4% |
<https://arxiv.org/abs/1409.1556>
|
| VGG19 | 71.1 | 89.8 | 7.3% |
<https://arxiv.org/abs/1409.1556>
|
| ResNet
V1 50 | 75.2 | 92.2 | 7.24% |
<https://arxiv.org/abs/1512.03385>
|
| Res
net
V1 101 | 76.4 | 92.9 | |
<https://arxiv.org/abs/1512.03385>
|
| Res
net
V1 152 | 76.8 | 93.2 | |
<https://arxiv.org/abs/1512.03385>
|
| ResNet
V2 50 | 75.6 | 92.8 | |
<https://arxiv.org/abs/1603.05027>
|
| ResNet
V2 101 | 77.0 | 93.7 | |
<https://arxiv.org/abs/1603.05027>
|
| ResNet
V2 152 | 77.8 | 94.1 | |
<https://arxiv.org/abs/1603.05027>
|
| ResNet
V2 200 | 79.9 | 95.2 | |
<https://arxiv.org/abs/1603.05027>
|
| ResNetV1 50 | 75.2 | 92.2 | 7.24% |
<https://arxiv.org/abs/1512.03385>
|
| Res
Net
V1 101 | 76.4 | 92.9 | |
<https://arxiv.org/abs/1512.03385>
|
| Res
Net
V1 152 | 76.8 | 93.2 | |
<https://arxiv.org/abs/1512.03385>
|
| ResNetV2 50 | 75.6 | 92.8 | |
<https://arxiv.org/abs/1603.05027>
|
| ResNetV2 101 | 77.0 | 93.7 | |
<https://arxiv.org/abs/1603.05027>
|
| ResNetV2 152 | 77.8 | 94.1 | |
<https://arxiv.org/abs/1603.05027>
|
| ResNetV2 200 | 79.9 | 95.2 | |
<https://arxiv.org/abs/1603.05027>
|
| Xception | 79.0 | 94.5 | |
<https://arxiv.org/abs/1610.02357>
|
| MobileNet V1 | 41.3 至 70.7 | 66.2 至 89.5 | |
<https://arxiv.org/pdf/1704.04861.pdf>
|
...
...
@@ -1190,18 +1190,18 @@ Probability 0.43% of [bear]
除了最后的嘈杂图像外,所有类别都已正确识别。通过适当的超参数调整,也可以进行改进。
到目前为止,您已经看到了使用预训练模型进行分类并对预训练模型进行微调的示例。接下来,我们将使用 Inception
v
3 模型显示分类示例。
到目前为止,您已经看到了使用预训练模型进行分类并对预训练模型进行微调的示例。接下来,我们将使用 Inception
V
3 模型显示分类示例。
# TensorFlow 中的 Inception
v
3
# TensorFlow 中的 Inception
V
3
您可以按照 Jupyter 笔记本中的代码
`ch-12c_InceptionV3_TensorFlow`
。
TensorFlow 的 Inception
v3 在 1,001 个标签上训练,而不是 1,000 个。此外,用于训练的图像被不同地预处理。我们在前面的部分中展示了预处理代码。让我们直接深入了解使用 TensorFlow 恢复 Inception v
3 模型。
TensorFlow 的 Inception
V3 在 1,001 个标签上训练,而不是 1,000 个。此外,用于训练的图像被不同地预处理。我们在前面的部分中展示了预处理代码。让我们直接深入了解使用 TensorFlow 恢复 InceptionV
3 模型。
让我们下载 Inception
v
3 的检查点文件:
让我们下载 Inception
V
3 的检查点文件:
```
py
# load the
inception
V3 model
# load the
Inception
V3 model
model_name
=
'inception_v3'
model_url
=
'http://download.tensorflow.org/models/'
model_files
=
[
'inception_v3_2016_08_28.tar.gz'
]
...
...
@@ -1223,9 +1223,9 @@ image_height=inception.inception_v3.default_image_size
image_width
=
inception
.
inception_v3
.
default_image_size
```
# 使用 TensorFlow 中的 Inception
v
3 进行图像分类
# 使用 TensorFlow 中的 Inception
V
3 进行图像分类
图像分类与使用 VGG 16 模型的上一节中说明的相同。 Inception
v
3 模型的完整代码如下:
图像分类与使用 VGG 16 模型的上一节中说明的相同。 Inception
V
3 模型的完整代码如下:
```
py
x_p
=
tf
.
placeholder
(
shape
=
(
None
,
...
...
@@ -1351,9 +1351,9 @@ Probability 1.55% of [pay-phone, pay-station]
虽然它在与 VGG 模型几乎相同的地方失败了,但并不算太糟糕。现在让我们用 COCO 动物图像和标签再训练这个模型。
# 使用 TensorFlow 中的再训练的 Inception
v
3 进行图像分类
# 使用 TensorFlow 中的再训练的 Inception
V
3 进行图像分类
Inception
v
3 的再训练与 VGG16 不同,因为我们使用 softmax 激活层作为输出,
`tf.losses.softmax_cross_entropy()`
作为损耗函数。
Inception
V
3 的再训练与 VGG16 不同,因为我们使用 softmax 激活层作为输出,
`tf.losses.softmax_cross_entropy()`
作为损耗函数。
1.
首先定义占位符:
...
...
@@ -1584,7 +1584,7 @@ Probability 9.02% of [giraffe]
# 总结
迁移学习是一项伟大的发现,它允许我们通过将在较大数据集中训练的模型应用于不同的数据集来节省时间。当数据集很小时,迁移学习也有助于热启动训练过程。在本章中,我们学习了如何使用预训练的模型,如 VGG16 和 Inception
v
3,将不同数据集中的图像分类为他们所训练的数据集。我们还学习了如何使用 TensorFlow 和 Keras 中的示例再训练预训练模型,以及如何预处理图像以供给两个模型。
迁移学习是一项伟大的发现,它允许我们通过将在较大数据集中训练的模型应用于不同的数据集来节省时间。当数据集很小时,迁移学习也有助于热启动训练过程。在本章中,我们学习了如何使用预训练的模型,如 VGG16 和 Inception
V
3,将不同数据集中的图像分类为他们所训练的数据集。我们还学习了如何使用 TensorFlow 和 Keras 中的示例再训练预训练模型,以及如何预处理图像以供给两个模型。
我们还了解到有几种模型在 ImageNet 数据集上进行了训练。尝试查找在不同数据集上训练的其他模型,例如视频数据集,语音数据集或文本/ NLP 数据集。尝试使用这些模型再训练并在您自己的数据集中使用您自己的深度学习问题。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录