Python技术迷

PyTorch 教程-在PyTorch中进行风格转移

整理:python架构师

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

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

Image

专属福利 

👉点击领取:最全Python资料合集

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

在实现此算法时,我们定义两个距离;一个用于内容(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个对象类别。

Image

在我们的初始化过程中,我们只会导入模型的特征。
#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)
当我们运行此代码时,下载将开始,并且我们的模型特征将被成功下载。

Image

将模型添加到我们的设备

当我们的模型特征被下载并导入时,我们必须将其添加到设备上,可以是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)
当我们运行此代码时,它将给我们预期的输出:
Image
Image
 1
Image
热门推荐

Image