个性化阅读
专注于IT技术分析

PyTorch中的样式传输实例图解

在本主题中, 我们将实现一个基于深度神经网络的人工系统, 该系统将创建高感知质量的艺术图像。该系统将使用神经表示来分离, 重新组合任意图像的内容和样式, 从而为创建艺术图像提供一种神经算法。

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

PyTorch中的样式传输

神经样式转换算法如何工作?

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

PyTorch中的样式传输

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

#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)

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

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中的样式传输

赞(0)
未经允许不得转载:srcmini » PyTorch中的样式传输实例图解

评论 抢沙发

评论前必须登录!