PyTorch 中的风格迁移

17 Mar 2025 | 阅读 2 分钟

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

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

Style Transferring in PyTorch

神经风格迁移算法是如何工作的?

当我们实现这个算法时,我们定义了两个距离;一个用于内容 (Dc),另一个用于风格 (Ds)。 Dc 测量两张图像之间内容的差异程度,Ds 测量两张图像之间风格的差异程度。我们以第三张图像作为输入,对其进行转换,以最大限度地减少其与内容图像的内容距离及其与风格图像的风格距离。

所需库

VGG-19 模型的初始化

VGG-19 模型类似于 VGG-16 模型。 VGG 模型由 Simonyan 和 Zisserman 提出。 VGG-19 在来自 ImageNet 数据库的超过一百万张图像上进行了训练。 该模型拥有 19 层深度神经网络,可以将图像分类为 1000 个对象类别。

Style Transferring in PyTorch

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

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

Style Transferring in PyTorch

将模型添加到我们的设备

当我们的模型功能下载并导入后,我们必须将其添加到设备中,无论是 CUDA 还是 CPU。 torch.device 是我们将执行此过程的方法。

当我们运行此操作时,它将为我们提供预期的输出,如下所示

Style Transferring in PyTorch