风格迁移CycleGAN开源项目代码运行步骤详细教程

这篇具有很好参考价值的文章主要介绍了风格迁移CycleGAN开源项目代码运行步骤详细教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

   最近在学习Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks这篇论文,论文下载地址,想要复现一下文中的代码,过程中遇到了很多问题,因此记录下来。遇到其他问题欢迎在评论区留言,相互解答。


前言

如果没有安装Anaconda或者MIniconda的可以先安装,并学一下简单的环境以及包的管理。基本的语法有:

conda remove -n=your_env_name --all
删除虚拟环境

conda create -n=your_env_name python=3.6
创建虚拟环境

conda info --env 
显示所有环境的列表

conda activate env_name 
切换至env_name环境



一、下载项目,搭配环境

  1. 下载源码并解压。PyTorch版CycleGAN源码下载地址:CycleGAN源码

   项目结构如下,一般的项目都会包含requirements.txt, environment.yml, setup.py三者之中某些或者全部。

  • requirements.txt, environment.yml是同一类的东西,它们提供的是当前软件包安装运行所需要的环境或者依赖信息,即这些东西的安装是当前软件包安装和运行的前提条件。这些信息相当于是开发者给使用者提供的用于恢复自己开发时的环境的信息。environment.yml = python + requirements.txt。
  • setup.py跟以上两者是完全不一样的,它就是用于安装当前软件包自身的安装脚本。

cycle-consistent adversarial network代码,图像生成,开源,python,深度学习

  1. 打开Anaconda prompt,先切换路径到代码包解压的路径中。然后通过使用作者的环境包来搭建设定好的环境,输入:
conda env create -f environment.yml

cycle-consistent adversarial network代码,图像生成,开源,python,深度学习
再通过pip来安装visdom,输入:

pip install -r requirements.txt

   如果使用conda env create -f environment.yml命令时,报错CondaHTTPError,可以参考这篇文章:关于anaconda创建环境时出现CondaHTTPError问题的终极解决办法。如果还是不行,由于environment.yml中的包并不多,可以用pip手动安装。

首先创建一个环境:

conda create -n=MyProject python=3.8

进入环境:

conda activate MyProject 

用pip依次安装environment.yml文件中的包(除了torch):

pip install --index-url https://pypi.tuna.tsinghua.edu.cn/simple/ dominate=2.4.0

安装torch:安装教程 , 下载库网址
这里最好下gpu版本的,因为下载gpu版本的,训练时可以选择gpu或者cpu进行训练。但是下载cpu版本,只能选择cpu进行训练。



二、下载数据集

  1. 找到项目中datasets文件夹下的 download_cyclegan_dataset.sh 文件,使用记事本打开,也可以点击数据集链接http://efrosgans.eecs.berkeley.edu/cyclegan/datasets/
    cycle-consistent adversarial network代码,图像生成,开源,python,深度学习
  2. 下载horse2zebra这个压缩包,也可以下其他的,把这个数据集解压并保存在解压后的代码包的dataset文件中。
    cycle-consistent adversarial network代码,图像生成,开源,python,深度学习
    cycle-consistent adversarial network代码,图像生成,开源,python,深度学习
    如果下载压缩包时提示:“无法下载,网络原因”,可以下载idm,
    idm使用教程, idm下载链接



三、训练

3.1调用Visdom可视化库

   首先把项目配置在刚才创建的环境中,参考Pycharm中如何配置已有的环境_MrRoose1的博客-CSDN博客。然后在终端输入python -m visdom.server,如果启动成功显示如下:
cycle-consistent adversarial network代码,图像生成,开源,python,深度学习

   如果没有反应,或者在Anaconda prompt中输入python -m visdom.server,显示Downloading scripts, this may take a little while,则可以参考博客visdom服务启动时提示Downloading scripts, this may take a little while解决办法亲测有效,可以解决。


3.2 训练

   如图添加train文件中的参数,把python train.py后面的部分,也就是--dataroot ./datasets/horse2zebra --name horse2zebra --model cycle_gan复制到Parameter中,然后运行train.py。

python train.py --dataroot ./datasets/horse2zebra --name horse2zebra --model cycle_gan

1)datasets 这个最简单,就是数据集的路径
2)name 这里指的是保存训练权重的文件夹的名字
3)model:训练的模型
cycle-consistent adversarial network代码,图像生成,开源,python,深度学习

如果报错module ‘torch._C’ has no attribute ‘_cuda_setDevice’,可能是因为环境里pytorch下载的CPU版本导致的。查看pytorch版本的方法:

import torch
# 若返回为True,则使用的是GPU版本的torch,若为False,则为CPU版本
print(torch.cuda.is_available())
# 返回的GPU型号为你使用的GPU型号
print(torch.cuda.get_device_name(0))
  1. 如果下载的是cpu版本,要么下载GPU版本,要么在你执行代码时加上将GPU设置成-1。

① 如果时Python文件中调用了GPU,那么设置:

torch.cuda.set_device(-1)

②如果你用命令行执行python文件,那么在最后加上

python train.py --你的GPU的设置对应形参 -1

你的GPU设置对应形参,是你的Python文件中应该会有一个arg是用来设置要使用GPU的编号的,与1同理。

  1. 如果环境里明明是GPU版本,这里有可能是因为CMD命令行识别环境错了,所以我们换在anaconda里面运行。

报错信息:UserWarning: Detected call of ‘lr_scheduler.step()’ before ‘optimizer.step()’. In PyTorch 1.1.0 and later, you should call them in the opposite order: ‘optimizer.step()’ before ‘lr_scheduler.step()’. Failure to do this will result in PyTorch skipping the first value of the learning rate schedule. See more details at https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate
warnings.warn("Detected call of ‘lr_scheduler.step()’ before ‘optimizer.step()’. "
把train.py文件中的第43行注释,放到第78行。

model.update_learning_rate()  # update learning rates in the beginning of every epoch.

运行成功以后,在Visdom可以看到训练过程。
cycle-consistent adversarial network代码,图像生成,开源,python,深度学习

   当运行train.py文件时,在文件夹下保存模型里会生成一个web文件,打开里面的html就能看到八种图片:

  • real_A:表示输入的真实的A图片
  • real_B:表示输入的真实的B图片
  • fake_B:表示真实图片A生成的假冒B风格图片
  • fake_A:表示真实图片B生成的假冒A风格图片
  • rec_A:表示fake_B再生成回A风格图片
  • rec_B:表示fake_A再生成回B风格图片
  • idt_B:表示真实图片A生成的A风格图片
  • idt_A:表示真实图片B生成的B风格图片

其中fake_B一般就是想要生成的图片

  • netG_A:生成器A,用于生成B风格的图片
  • netG_B:生成器B,用于生成A风格的图片

如果想要继续训练,运行命令如下:

python train.py --dataroot ./datasets/horse2zebra --name horse2zebra --model cycle_gan --continue_train




四、预测

4.1 用自己训练完的权重文件进行预测

用同样的方法运行test.py文件:

python test.py --dataroot ./datasets/horse2zebra --name horse2zebra --model cycle_gan

会生成一个results文件夹,打开html可以看到训练的效果。可以看到训练5轮的效果并不好。
cycle-consistent adversarial network代码,图像生成,开源,python,深度学习

cycle-consistent adversarial network代码,图像生成,开源,python,深度学习


4.2 用作者预训练文件进行预测

  1. 首先要下载预训练文件:预训练文件下载地址
    cycle-consistent adversarial network代码,图像生成,开源,python,深度学习
  2. 在check_points文件夹里新建文件夹:horse2zebra.pth_pretrained
    cycle-consistent adversarial network代码,图像生成,开源,python,深度学习
  3. 将下载的预训练权重文件重新命名为:latest_net_G.pth,并放在horse2zebra.pth_pretrained文件夹下。
    cycle-consistent adversarial network代码,图像生成,开源,python,深度学习
  4. 添加新的参数运行test.py文件,参数为--dataroot datasets/horse2zebra/testA --name horse2zebra.pth_pretrained --model test --no_dropoutcycle-consistent adversarial network代码,图像生成,开源,python,深度学习
    也可以在anconda中激活环境运行:
python test.py --dataroot datasets/horse2zebra/testA --name horse2zebra.pth_pretrained --model test --no_dropout

打开results文件夹下horse2zebra.pth_pretrained文件夹中的html,可以看到训练的效果图。
cycle-consistent adversarial network代码,图像生成,开源,python,深度学习



参考:
【毕设】基于CycleGAN的风格迁移【一】环境搭建及运行代码
【深度学习】CycleGAN开源项目学习笔记 | 完整流程 | 报错总结 | pytorch文章来源地址https://www.toymoban.com/news/detail-781922.html

到了这里,关于风格迁移CycleGAN开源项目代码运行步骤详细教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 竞赛项目 深度学习图像风格迁移 - opencv python

    🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习图像风格迁移 - opencv python 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/danche

    2024年02月13日
    浏览(46)
  • idea配置jdbc连接MySQL的全部详细步骤(包含运行代码)

    读者手册(必读)_云边的快乐猫的博客-CSDN博客 一、导包 1. 打开 idea ,在左上角找到当前使用的这个模块,右键打开新建一个 Directory   2. 这个目录包命名为 lib 3. 在本地磁盘中找到下载的MySQL的这个jar包,点击ctrl +c复制,ctrl+v粘贴到这个lib里面点击ok就好了   4. 这样就完成

    2024年02月11日
    浏览(50)
  • IDEA若依框架入门(前后端分离版本) 0基础详细步骤代码导入运行

    若依官网:http://ruoyi.vip (这些准备工作,都会在其他章节持续更新相应操作步骤的奥~请关注我❤) JDK = 1.8 (推荐1.8版本) Mysql = 5.7.0 (推荐5.7版本) Redis = 3.0 Maven = 3.0 Node = 12 官网地址:https://gitee.com/y_project/RuoYi-Vue 1.可以点击克隆/下载,直接导出。下载后解压即可导入IDEA使用

    2024年02月09日
    浏览(68)
  • 【上传项目代码到Git详细步骤】

    安装Git到电脑上(这里我之前已经安装好了,就不细说了) 安装好后右键点击桌面空白部分会多出两个菜单选项,点击第二个Git Bash Here (点击第一个你会爆炸) 程序图标→options→text→select git config --global user.name \\\"clover\\\" 设置用户名称 git config --global user.email \\\"hello@clover.cn\\\" 设

    2024年02月07日
    浏览(39)
  • 开源项目 | 用AI给人像照片换发型和发色(附详细步骤 + 避坑指南)

    导  读     本文主要介绍使用开源项目Barbershop给人像照片换发型和发色(附详细步骤 + 避坑指南)。 背景介绍      摘要: 由于光照、几何和部分遮挡的复杂关系会导致图像不同部分之间的耦合,因此无缝混合多个图像的特征极具挑战性。尽管最近关于 GAN 的研究能够合成

    2024年02月21日
    浏览(36)
  • 大数据综合项目--网站流量日志数据分析系统(详细步骤和代码)

    提示:这里简述我使用的版本情况: ubuntu16.04 hbase1.1.5 hive1.2.1 sqoop1.4.6 flume1.7.0 项目所使用的参考文档和代码资源和部分数据 网盘链接:链接:https://pan.baidu.com/s/1TIKHMBmEFPiOv48pxBKn2w 提取码:0830 为更好的理解项目架构,对项目使用的一些服务补充一些基本概述: 什么是Sqoop

    2023年04月08日
    浏览(47)
  • Flask数据迁移详细步骤

    Flask模型相关包安装    from .models import *     6.1 先在cmd或Terminal进入项目目录(app.py所在目录):     6.2 然后输入命令:         flask db init  创建迁移文件夹migrates, 只调用一次         flask db migrate  生成迁移文件         flask db upgrade  执行迁移文件中的升级         fla

    2023年04月16日
    浏览(16)
  • 从MySQL迁移到Oracle数据库的详细步骤和方法

    在一些情况下,可能需要将现有的MySQL数据库迁移到Oracle数据库。本文将详细介绍如何进行这一迁移过程,涵盖了备份、转换和导入等关键步骤,以帮助你顺利完成数据库迁移。 在开始迁移之前,务必备份你的MySQL数据库,以便在出现问题时可以还原数据。 确保你已经安装了

    2024年02月08日
    浏览(55)
  • vue3项目 - Eslint 配置代码风格

    总结: Prettier   (代码规范的插件,格式化 )--- 美观 Eslint   (规范、纠错、检验错误 )----- 纠错 首先, 禁用 Prettier 插件,安装 ESLint 插件,配置保存时自动修复 再 配置代码风格文件 .eslintrc.cjs (Prettier 配置 + ESLint 配置, 附配置代码 ) 配置内容 如, Prettier:单引号、

    2024年02月04日
    浏览(43)
  • 堪比Midjourney!上百种风格AI写真丝滑生成,这个开源项目能颠覆照相馆吗?

    概览简介 FaceChain 是一个可以用来打造个人数字形象的深度学习模型工具平台。用户仅需要提供最低一张照片即可获得属于自己的个人形象数字替身。结合不同的风格模型和写真模版,可以生成超乎想象空间的个人写真作品。 更有意思的是,FaceChain 还集成了说话人与虚拟试衣

    2024年02月03日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包