在这个主题中,我们将实现一个基于深度神经网络的人工系统,它将创建具有高感知质量的艺术图像。该系统将使用神经表示来分离、重新组合任意图像的内容和风格,提供了一个用于创建艺术图像的神经算法。

神经风格转移是一种以另一张图像的风格生成图像的方法。神经风格算法以内容图像(风格图像)作为输入,返回内容图像,就好像它是使用风格图像的艺术风格打印的一样。

1-1.png

神经风格转移算法的工作原理是什么?

在实现此算法时,我们定义两个距离;一个用于内容(Dc),另一个用于风格(Ds)。 Dc测量两个图像之间的内容差异,而Ds测量两个图像之间的风格差异。我们将第三张图像作为输入,并对其进行转换,以既减小其与内容图像的内容距离,又减小其与风格图像的风格距离。

所需库

import torch  
import torch.optim as  optim  
#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, models  
from PIL import Image  
import matplotlib.pyplot as plt  
import numpy as np  

初始化VGG-19模型

VGG-19模型类似于VGG-16模型。VGG模型由Simonyan和Zisserman引入。VGG-19在ImageNet数据库上训练了一百多万张图像。该模型是一个有19层深度神经网络,可以将图像分类为1000个对象类别。

1-2.png

在我们的初始化过程中,我们只会导入模型的特征。

#importing model features   
vgg=models.vgg19(pretrained=True).features  #we are using pre-trained model   
# Maintain parameter constant setting  
for param in vgg.parameters():  
    param.requires_grad_(False)  

当我们运行此代码时,下载将开始,并且我们的模型特征将被成功下载。

1-3.png

将模型添加到我们的设备

当我们的模型特征被下载并导入时,我们必须将其添加到设备上,可以是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)   

当我们运行此代码时,它将给我们预期的输出:

1-4.png

标签: Pytorch, Pytorch教程, Pytorch安装, Pytorch入门, Pytorch下载, Pytorch指南, Pytorch编程, Pytorch入门教程, Pytorch初级教程, Pytorch进阶, Pytorch高级教程, Pytorch学习, Pytorch库