风格迁移项目一:如何使用

前言

由于我不太会pr,所以直接新建的项目,

原项目地址:https://github.com/Optimistism/Style-transfer

原项目代码的讲解地址:https://www.bilibili.com/video/BV1yY4y1c7Cz/

本项目是对原项目的一点点完善。

项目地址:https://github.com/Knighthood2001/Style-transfer

更新

  • 2024-08-03 更新:这个项目,是不能保存模型参数的,也就是说,你只能通过训练,得出图片,而不能直接进行推理。

项目如何运行

  1. 下载项目
    这个比较简单,直接在github上下载zip包,然后解压即可。或者使用git clone命令克隆项目。
  2. 安装依赖
  • 这里由于我没有用到虚拟环境,无法准确得出需要用的包,大致就是torch和我requirements.txt中的包。
  • 安装命令
    安装torch的话,会比较慢
shell 复制代码
pip install -r requirements.txt
  • 这里需要注意,需要安装tensorboard,作者给出的并没有这个,但是如果没有这个,你是查看不了运行结果的。
  1. 运行项目
  • 首先就是运行代码
  • 然后的话,它会去https://download.pytorch.org/models/vgg19-dcbb9e9d.pth 去下载vgg19的预训练权重,这个文件大概548mb。
    由于我这里不知道pytorch如何加载这个文件,因此,大家可以自己下载这个文件,或者将我这个文件,放到你代码运行后,它给出的那个路径下。可以看下面我更改部分第一点的第二张图片,运行代码会给出最终下载的路径的。
  • 然后想要看到tensorboard中的数据,就在终端输入
shell 复制代码
tensorboard --logdir=runs

然后点击浏览器,输入localhost:6006
点击这里也可以

后续你跑自己的图片,只需要在main.py中修改content_imgstyle_img即可。

更改

  1. 更新了vgg19传参
    最开始会报这个警告

使用这行代码后

shell 复制代码
# self.vgg = models.vgg19(pretrained=True).features  # .features用于提取卷积层
self.vgg = models.vgg19(weights=VGG19_Weights.IMAGENET1K_V1).features

这行代码,会去自动下载官网的vgg19预训练权重,548mb,下载还是很慢的。我下载这个花了30分钟。

我这里由于文件太大,无法上传到github,因此,大家可以自己下载这个文件。

不会警告了

  1. 添加了content_weight参数,更加符合其公式要求
shell 复制代码
loss = content_weight * content_loss + style_weight * style_loss
  1. 运行代码后提示报错
shell 复制代码
RuntimeError: Input type (torch.FloatTensor) and weight type
 (torch.cuda.FloatTensor) should be the same or input should 
 be a MKLDNN tensor and weight is a dense tensor

当模型的权重(weights)和输入数据(inputs)不在同一个设备上时。

这个命令报错表示你的模型权重被移动到了CUDA设备上(即GPU),但是你的输入数据还在CPU上。

因此,具体做法是,将输入数据也移动到device中,它将根据你代码中的变换,自动选择设备。

shell 复制代码
# 图片输入到gpu,否则就会报错
content_img = content_img.to(device)
style_img = style_img.to(device)
  1. 添加了日志记录

main.py的最开始,添加了一些代码,主要就是设置了日志,并且以时间命名,方便后续将结果保存到日志中,方便查看。免得你自己去创建txt进行cv。

可以看到,这里也会有时间,你可以通过看日志,计算训练的时间。

实际体验

我本机是1650的显卡,跑3000轮,花了20分钟。

原图

结果图

梵高风的狗头自拍图

2999轮的结果

6000轮的结果

效果其实还不错

相关推荐
阿_旭3 分钟前
TensorFlow构建CNN卷积神经网络模型的基本步骤:数据处理、模型构建、模型训练
人工智能·深度学习·cnn·tensorflow
羊小猪~~4 分钟前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
极客代码10 分钟前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow
zhangfeng113310 分钟前
pytorch 的交叉熵函数,多分类,二分类
人工智能·pytorch·分类
Seeklike11 分钟前
11.22 深度学习-pytorch自动微分
人工智能·pytorch·深度学习
庞传奇12 分钟前
TensorFlow 的基本概念和使用场景
人工智能·python·tensorflow
华清远见IT开放实验室19 分钟前
【每天学点AI】实战图像增强技术在人工智能图像处理中的应用
图像处理·人工智能·python·opencv·计算机视觉
OpenVINO 中文社区28 分钟前
实战精选|如何使用 OpenVINO™ 在 ElectronJS 中创建桌面应用程序
人工智能·openvino
只怕自己不够好33 分钟前
《OpenCV 图像缩放、翻转与变换全攻略:从基础操作到高级应用实战》
人工智能·opencv·计算机视觉
网络研究院39 分钟前
国土安全部发布关键基础设施安全人工智能框架
人工智能·安全·框架·关键基础设施