PyTorch中的样式传输实例图解

【PyTorch中的样式传输实例图解】在本主题中, 我们将实现一个基于深度神经网络的人工系统, 该系统将创建高感知质量的艺术图像。该系统将使用神经表示来分离, 重新组合任意图像的内容和样式, 从而为创建艺术图像提供一种神经算法。
神经样式转移是一种以另一种图像样式生成图像的方法。神经样式算法将内容图像(样式图像)作为输入, 并返回内容图像, 就好像它是使用样式图像的艺术风格打印的一样。

PyTorch中的样式传输实例图解

文章图片
神经样式转换算法如何工作? 当我们实现该算法时, 我们定义了两个距离;一个用于内容(Dc), 另一个用于样式(Ds)。 Dc测量两个图像之间的内容有多不同, Ds测量两个图像之间的样式有多不同。我们将第三张图像作为输入并对其进行转换, 以最小化其与内容图像的内容距离和与样式图像的样式距离。
所需的图书馆
import torchimport torch.optim asoptim#we will import transforms and models because we will transform our images and we will use pre-trained model VGG-19 from torchvision import transforms, modelsfrom PIL import Imageimport matplotlib.pyplot as pltimport numpy as np

VGG-19模型的初始化
VGG-19型号类似于VGG-16型号。 VGG模型由Simonyan和Zisserman提出。 VGG-19接受了ImageNet数据库中超过一百万张图像的培训。该模型具有19层深度神经网络, 可以将图像分类为1000个对象类别。
PyTorch中的样式传输实例图解

文章图片
在初始化过程中, 我们将仅导入模型的特征。
#importing model features vgg=models.vgg19(pretrained=True).features #we are using pre-trained model # Maintain parameter constant settingfor param in vgg.parameters():param.requires_grad_(False)

当我们运行此代码时, 将开始下载, 并且模型功能将成功下载。
PyTorch中的样式传输实例图解

文章图片
将模型添加到我们的设备
下载并导入模型功能后, 我们必须将其添加到CUDA或CPU上。 torch.device是我们执行此过程的方法。
#Implementing device device=torch.device("cuda" if torch.cuda.is_available() else "cpu")#Attaching our vgg model to our device vgg.to(device)

运行此命令时, 它将为我们提供预期的输出:
PyTorch中的样式传输实例图解

文章图片

    推荐阅读