提交 354b9cdd 编写于 作者: W wizardforcel

2020-09-06 17:14:45

上级 38c45fde
......@@ -73,7 +73,7 @@
# 约定
在本书中,您将找到许多可以区分不同类型信息的文本样式。 以下是这些样式的一些示例,并解释了其含义。 文本,数据库表名称,文件夹名称,文件名,文件扩展名,路径名,虚拟 URL,用户输入和 Twitter 句柄中的代码字显示如下:“我们刚刚使用以下命令创建了`jiradb`数据库,在数据库中为 JIRA 创建新用户并授予该用户访问权限”。
在本书中,您将找到许多可以区分不同类型信息的文本风格。 以下是这些风格的一些示例,并解释了其含义。 文本,数据库表名称,文件夹名称,文件名,文件扩展名,路径名,虚拟 URL,用户输入和 Twitter 句柄中的代码字显示如下:“我们刚刚使用以下命令创建了`jiradb`数据库,在数据库中为 JIRA 创建新用户并授予该用户访问权限”。
代码块设置如下:
......
......@@ -4,7 +4,7 @@
* 创建一个卷积网络对手写 MNIST 编号进行分类
* 创建一个卷积网络对 CIFAR-10 进行分类
* 使用 VGG19 迁移样式用于图像重绘
* 使用 VGG19 迁移风格用于图像重绘
* 使用预训练的 VGG16 网络进行迁移学习
* 创建 DeepDream 网络
......@@ -448,13 +448,13 @@ Jupyter 执行 CIFAR10 分类的示例
要安装 TFLearn,请参阅[《安装指南》](http://tflearn.org/installation),如果您想查看更多示例,可以在线获取[一长串久经考验的解决方案](http://tflearn.org/examples/)
# 使用 VGG19 迁移样式用于图像重绘
# 使用 VGG19 迁移风格用于图像重绘
在本秘籍中,您将教计算机如何绘画。 关键思想是拥有绘画模型图像,神经网络可以从该图像推断绘画风格。 然后,此样式将转移到另一张图片,并相应地重新粉刷。 该秘籍是对`log0`开发的代码的修改,[可以在线获取](https://github.com/log0/neural-style-painting/blob/master/TensorFlow%20Implementation%20of%20A%20Neural%20Algorithm%20of%20Artistic%20Style.ipynb)
在本秘籍中,您将教计算机如何绘画。 关键思想是拥有绘画模型图像,神经网络可以从该图像推断绘画风格。 然后,此风格将迁移到另一张图片,并相应地重新粉刷。 该秘籍是对`log0`开发的代码的修改,[可以在线获取](https://github.com/log0/neural-style-painting/blob/master/TensorFlow%20Implementation%20of%20A%20Neural%20Algorithm%20of%20Artistic%20Style.ipynb)
# 准备
我们将实现在论文[《一种艺术风格的神经算法》](https://arxiv.org/abs/1508.06576)中描述的算法,作者是 Leon A. Gatys,亚历山大 S. Ecker 和 Matthias Bethge。 因此,最好先阅读[该论文](https://arxiv.org/abs/1508.06576)。 此秘籍将重复使用在线提供的预训练模型 [VGG19](http://www.vlfeat.org/matconvnet/models/beta16/imagenet-vgg-verydeep-19.mat),该模型应在本地下载。 我们的风格图片将是一幅可在线获得的[梵高著名画作](https://commons.wikimedia.org/wiki/File:VanGogh-starry_night.jpg),而我们的内容图片则是[从维基百科下载的玛丽莲梦露的照片](https://commons.wikimedia.org/wiki/File:Marilyn_Monroe_in_1952.jpg)。 内容图像将根据梵高的样式重新绘制。
我们将实现在论文[《一种艺术风格的神经算法》](https://arxiv.org/abs/1508.06576)中描述的算法,作者是 Leon A. Gatys,亚历山大 S. Ecker 和 Matthias Bethge。 因此,最好先阅读[该论文](https://arxiv.org/abs/1508.06576)。 此秘籍将重复使用在线提供的预训练模型 [VGG19](http://www.vlfeat.org/matconvnet/models/beta16/imagenet-vgg-verydeep-19.mat),该模型应在本地下载。 我们的风格图片将是一幅可在线获得的[梵高著名画作](https://commons.wikimedia.org/wiki/File:VanGogh-starry_night.jpg),而我们的内容图片则是[从维基百科下载的玛丽莲梦露的照片](https://commons.wikimedia.org/wiki/File:Marilyn_Monroe_in_1952.jpg)。 内容图像将根据梵高的风格重新绘制。
# 操作步骤
......@@ -477,7 +477,7 @@ import Image %matplotlib inline from __future__
import division
```
2. 然后,设置用于学习样式的图像的输入路径,并根据样式设置要重绘的内容图像的输入路径:
2. 然后,设置用于学习风格的图像的输入路径,并根据风格设置要重绘的内容图像的输入路径:
```py
OUTPUT_DIR = 'output/'
......@@ -487,7 +487,7 @@ STYLE_IMAGE = 'data/StarryNight.jpg'
CONTENT_IMAGE = 'data/Marilyn_Monroe_in_1952.jpg'
```
3. 然后,我们设置图像生成过程中使用的噪声比,以及在重画内容图像时要强调的内容损失和样式损失。 除此之外,我们存储通向预训练的 VGG 模型的路径和在 VGG 预训练期间计算的平均值。 这个平均值是已知的,可以从 VGG 模型的输入中减去:
3. 然后,我们设置图像生成过程中使用的噪声比,以及在重画内容图像时要强调的内容损失和风格损失。 除此之外,我们存储通向预训练的 VGG 模型的路径和在 VGG 预训练期间计算的平均值。 这个平均值是已知的,可以从 VGG 模型的输入中减去:
```py
# how much noise is in the image
......@@ -512,7 +512,7 @@ content_image = scipy.misc.imread(CONTENT_IMAGE) imshow(content_image)
![](img/359c23f6-f761-4df1-9542-0234e69e01d0.png)
5. 调整样式图像的大小并显示它只是为了了解它的状态。 请注意,内容图像和样式图像现在具有相同的大小和相同数量的颜色通道:
5. 调整风格图像的大小并显示它只是为了了解它的状态。 请注意,内容图像和风格图像现在具有相同的大小和相同数量的颜色通道:
```py
style_image = scipy.misc.imread(STYLE_IMAGE)
......@@ -533,7 +533,7 @@ imshow(style_image)
[文森特·梵高画作的一个例子](https://commons.wikimedia.org/wiki/File:VanGogh-starry_night_ballance1.jpg)
6. 下一步是按照原始论文中的描述定义 VGG 模型。 请注意,深度学习网络相当复杂,因为它结合了具有 ReLU 激活函数和最大池的多个卷积网络层。 另外需要注意的是,在原始论文《转移样式》(Leon A. Gatys,Alexander S. Ecker 和 Matthias Bethge 撰写的《一种艺术风格的神经算法》)中,许多实验表明,平均合并实际上优于最大池化。 因此,我们将改用平均池:
6. 下一步是按照原始论文中的描述定义 VGG 模型。 请注意,深度学习网络相当复杂,因为它结合了具有 ReLU 激活函数和最大池的多个卷积网络层。 另外需要注意的是,在原始论文《风格迁移》(Leon A. Gatys,Alexander S. Ecker 和 Matthias Bethge 撰写的《一种艺术风格的神经算法》)中,许多实验表明,平均合并实际上优于最大池化。 因此,我们将改用平均池:
```py
def load_vgg_model(path, image_height, image_width, color_channels):
......@@ -680,7 +680,7 @@ STYLE_LAYERS = [
]
```
9. 定义样式损失函数,如原始论文中所述:
9. 定义风格损失函数,如原始论文中所述:
```py
def style_loss_func(sess, model):
......@@ -766,7 +766,7 @@ content_image = load_image(CONTENT_IMAGE) imshow(content_image[0])
![](img/cbafb8f7-787c-4584-864f-3ad4c6acaeb3.png)
13. 加载处理后的样式图像并显示它:
13. 加载处理后的风格图像并显示它:
```py
style_image = load_image(STYLE_IMAGE) imshow(style_image[0])
......@@ -859,13 +859,13 @@ sess.run(tf.reduce_sum(mixed_image)))
# 工作原理
在本秘籍中,我们已经看到了如何使用样式转换来重绘内容图像。 样式图像已作为神经网络的输入提供,该网络学习了定义画家采用的样式的关键方面。 这些方面已用于将样式转移到内容图像。
在本秘籍中,我们已经看到了如何使用风格转换来重绘内容图像。 风格图像已作为神经网络的输入提供,该网络学习了定义画家采用的风格的关键方面。 这些方面已用于将风格迁移到内容图像。
# 更多
自 2015 年提出原始建议以来,样式转换一直是活跃的研究领域。已经提出了许多新想法来加速计算并将样式转换扩展到视频分析。 其中有两个结果值得一提
自 2015 年提出原始建议以来,风格转换一直是活跃的研究领域。已经提出了许多新想法来加速计算并将风格转换扩展到视频分析。 其中有两个结果值得一提
这篇文章是 [Logan Engstrom](https://github.com/lengstrom/fast-style-transfer/) 的快速样式转换,介绍了一种非常快速的实现,该实现也可以与视频一起使用。
这篇文章是 [Logan Engstrom](https://github.com/lengstrom/fast-style-transfer/) 的快速风格转换,介绍了一种非常快速的实现,该实现也可以与视频一起使用。
通过 [deepart](https://deepart.io/) 网站,您可以播放自己的图像,并以自己喜欢的艺术家的风格重新绘制图片。 还提供了 Android 应用,iPhone 应用和 Web 应用。
......@@ -1158,7 +1158,7 @@ DeepDream 转换的示例。 其中一位作家变成了狼
# 更多
许多网站都允许您直接玩 DeepDream。 我特别喜欢[`DeepArt.io`](https://deepart.io/),它允许您上传内容图像和样式图像并在云上进行学习。
许多网站都允许您直接玩 DeepDream。 我特别喜欢[`DeepArt.io`](https://deepart.io/),它允许您上传内容图像和风格图像并在云上进行学习。
# 另见
......
......@@ -702,7 +702,7 @@ features = model.predict(x)
较低的层标识较低阶的特征(例如颜色和边缘),较高的层将这些较低阶的特征组合为较高阶的特征(例如形状或对象)。 因此,中间层具有从图像中提取重要特征的能力,并且这些特征更有可能有助于不同种类的分类。
这具有多个优点。 首先,我们可以依靠公开提供的大规模训练,并将这种学习移到新颖的领域。 其次,我们可以节省昂贵的大型训练时间。 第三,即使我们没有针对该领域的大量训练示例,我们也可以提供合理的解决方案。 对于手头的任务,我们也有一个很好的起始网络形状,而不是猜测它。
这具有多个优点。 首先,我们可以依靠公开提供的大规模训练,并将这种学习移到新颖的领域。 其次,我们可以节省昂贵的大型训练时间。 第三,即使我们没有针对该领域的大量训练示例,我们也可以提供合理的解决方案。 对于手头的任务,我们也有一个很好的起始网络形状,而不是猜测它。
# 用于迁移学习的非常深的 InceptionV3 网络
......
......@@ -49,7 +49,7 @@ MAML 能够在流行的少拍图像分类基准上大大胜过许多现有方法
* Google 提出了[采用 RNN 作为控制器的方法](https://research.googleblog.com/2017/05/using-machine-learning-to-explore.html),该方法使用机器学习来探索神经网络架构。
* [《带有增强学习的神经架构搜索》](https://arxiv.org/abs/1611.01578)(Barret Zoph,Quoc V. Le)是一篇开创性的论文,它证明了有关 Google 方法的更多细节。 但是,RNN 不是唯一的选择。
* [《图像分类器的大规模发展》](https://arxiv.org/abs/1703.01041)(Esteban Real,Sherry Moore,Andrew Selle,Saurabh Saxena,Yutaka Leon Suematsu,Jie Tan,Quoc Le,Alex Kurakin,2017 年)提出在进化遗传算法中使用遗传计算来探索新的候选网络。
* [《学习用于可伸缩图像识别的可移架构》](https://arxiv.org/abs/1707.07012)(Barret Zoph,Vijay Vasudevan,Jonathon Shlens,Quoc V. Le)提出了在 CIFAR 上学习的单元,用于改善 ImageNet 分类。
* [《学习用于可伸缩图像识别的可移架构》](https://arxiv.org/abs/1707.07012)(Barret Zoph,Vijay Vasudevan,Jonathon Shlens,Quoc V. Le)提出了在 CIFAR 上学习的单元,用于改善 ImageNet 分类。
* [《构建可以建立人工智能的 AI》](https://www.nytimes.com/2017/11/05/technology/machine-learning-artificial-intelligence-ai.html):谷歌和其他公司为争夺一小部分研究人员而奋斗,他们正在寻找自动方法来应对人工智能专家的短缺。
* [《用于快速适应深度网络的模型不可知元学习》](https://arxiv.org/abs/1703.03400)(切尔西·芬恩(Chelsea Finn),彼得·阿比耶尔(Pieter Abbeel),谢尔盖·莱文(Sergey Levine),2017 年)。
* [《通过梯度下降学习》](https://arxiv.org/abs/1606.04474)(Marcin Andrychowicz,Misha Denil,Sergio Gomez,Matthew W. Hoffman,David Pfau,Tom Schaul,Brendan Shillingford,Nando de Freitas)展示了如何将优化算法的设计转换为学习问题,从而使该算法能够自动学习感兴趣的问题中的结构。 LSMT 学习的算法在训练任务上胜过手工设计的竞争对手,并且可以很好地推广到结构相似的新任务。 该算法的代码可在 [GitHub](https://github.com/deepmind/learning-to-learn) 上获得。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册