CycleGAN代码使用入门

news2025/7/15 5:47:28

以下内容为本人亲测使用过程,完成了橘子到苹果的AI转化效果,先上效果:

 

1、下载数据集

Index of /cyclegan/datasets

本次做的是苹果和橘子相互转化的实验,所以下载apple2orange.zip数据集

2、下载代码

github地址为:

https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

3、程序运行

(1)数据集

将数据集apple2orange放到代码的datasets目录下

(2)运行visdom

这个是facebook开发的类似tensorboard的可视化工具

执行命令:python -m visdom.server

刚打开是只有蓝色背景:

 

(3)本地执行train.py文件

在pycharm中的”Run”-> “Edit Configurations”下配置执行参数

--dataroot ./datasets/apple2orange --name apple2orange_cyclegan --model cycle_gan

执行后报错如下:“AttributeError: module 'torchvision.transforms' has no attribute 'InterpolationMode'”

解决方案:参考https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix/issues/1450文档,data/base_dataset.py文件中将transforms.InterpolationMode.BICUBIC全部修改为Image.BICBIC。

报错信息:OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading "D:\programs\python37\lib\site-packages\torch\lib\caffe2_detectron_ops_gpu.dll" or one of its dependencies.

本人2G的GPU跑不起来,需要改小模型、改少数据加载量、以及CPU运行,如果服务器显存够大则不需要下面的步骤。

修改方法为:

在models/networks.py文件中增加如下信息:

然后修改python运行配置,添加:

--netG

resnet_1blocks

--print_freq

1

--display_freq

2

--gpu_ids

-1

在options/base_options.py中修改--num_threads为1

再次运行成功,pycharm显示如下:

Visdom显示如下:

(4)ECS服务端运行train.py

本人在本机(2G显存)上进行代码调试,在服务器(16G显存)上进行训练。

代码在Docker(0a381dad2084)的位置为:/root/program/pytorch-CycleGAN-and-pix2pix

首先,data/base_dataset.py文件中将transforms.InterpolationMode.BICUBIC全部修改为Image.BICBIC

然后,执行命令:python -m visdom.server -p 8097,先下载一些脚本文件

接着,执行命令:python train.py --dataroot ./datasets/apple2orange --name apple2orange_cyclegan --model cycle_gan --display_id 0 --num_threads 1

后台运行方式为:nohup python -u train.py --dataroot ./datasets/apple2orange --name apple2orange_cyclegan --model cycle_gan --display_id 0 --num_threads 1 > train.log 2>&1 &

注意:一定要指定—display_id 0,否则会报错:Setting up a new session...,然后一直卡在那里。

 

(5)测试模型效果

下载测试的预料如下,放置两个目录testA和testB,分别放一张苹果和橘子的图片。

执行测试命令:python test.py --dataroot datasets/ping2ju --name apple2orange_cyclegan --model cycle_gan --no_dropout

最后会生成images文件,如下图所示:

最后效果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/369450.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT从下游应用“火”到了上游芯片厂,国内谁将受益?

因库存陷入低迷周期的半导体市场近日因ChatGPT的火热而重新受到外界关注。 原文链接:ChatGPT从下游应用“火”到了上游芯片厂,国内谁将受益? 由于ChatGPT属于生成式AI,被誉为“AI芯片”第一股的英伟达应声而涨。2月13日收盘&#…

Go高质量编程与性能调优-学习笔记

1 高质量编程 1.1 简介 1.1.1 高质量代码 高质量代码即正确可靠、简洁清晰的代码 1.1.2 编程原则 简单性可读性生产力1.2 编码规范 1.2.1 代码格式 推荐gofmt自动格式化代码! 推荐goimports实现gofmt依赖包管理! 1.2.2 注释 注释要解释代码作用、…

5个设计师常用素材库

推荐5个设计素材网站,免费下载! 1、菜鸟图库 菜鸟图库-免费设计素材下载 菜鸟图库是一个素材量非常丰富的网站,该网站聚合了平面、UI、淘宝电商、高清背景图、图片、插画等高质量素材。平面设计模板非常多,很多都能免费下载&…

springmvc实现controller接口

springmvc实现controller接口 前置配置 基础环境 springmvc 环境 jdk1.8 tomcat8.5 集成环境 ideasmart-tomcat (idea 中 tomcat插件) 实现controller接口 import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Control…

UNIAPP实战项目笔记59 NodeJS后端生成token 和 修复一些bug

UNIAPP实战项目笔记59 NodeJS后端生成token 和 修复一些bug 后端保持数据时往数据库写入token 修复一些前面遗留的问题bug 实际案例图片 后端接口文件 index.js var express require(express); var router express.Router(); var connection require(../db/sql.js); var us…

11、STM32通用定时器输出PWM

目录 1.通用定时器输出PWM 2.PWM的工作原理 3.PWM的内部运作机制 4.PWM的模式 41.边沿对齐模式 5.自动加载的预加载寄存器 6.定时器输出PWM结构体讲解 7.定时器输出PWM库函数讲解 8.定时器输出PWM----实战驱动SG90舵机 1.通用定时器输出PWM 以TIM3为例,STM…

makdown模版参考

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

一次性打包学透 Spring

不知从何时开始,Spring 这个词开始频繁地出现在 Java 服务端开发者的日常工作中,很多 Java 开发者从工作的第一天开始就在使用 Spring Framework,甚至有人调侃“不会 Spring 都不好意思自称是个 Java 开发者”。 之所以出现这种局面&#xf…

危害肠道健康的两大敌人:诺如病毒和轮状病毒

谷禾健康 // 近日,多地发生诺如病毒感染事件,诺如病毒引起的急性感染性腹泻进入发病高峰期。那么什么是诺如病毒?我们又该如何预防? 诺如病毒和轮状病毒都是传染性很强的肠道病毒,是导致急性胃肠炎的最重要原因之一。会…

如何自己搭建一个ai画图系统? 从0开始云服务器部署novelai

如何自己搭建一个ai画图系统? 从0开始云服务器部署novelai ​ 上面两张图都是通过ai生成的,是不是有以假乱真的感觉。 本教程提供的是自己搭建一个可以外网访问的ai系统的方法,需要采购gpu服务器(后续会出白嫖的方式)&…

Java俄罗斯方块游戏

技术:Java等摘要:俄罗斯方块是一款十分经典的游戏,它的主要运行规律为对系统随机产生的图形进行上下左右移动、旋转等操纵,使之排列成完整的一行或多行并且消除得分。它上手容易,难度循序渐进,老少皆宜&…

Android 架构 MVC MVP MVVM,这一波你应该了然于心

MVC,MVP和MVVM是软件比较常用的三种软件架构,这三种架构的目的都是分离,避免将过多的逻辑全部堆积在一个类中。在Android中,Activity中既有UI的相关处理逻辑,又有数据获取逻辑,从而导致Activity逻辑复杂不单…

Android入门第66天-使用AOP

开篇这篇恐怕又是一篇补足网上超9成关于这个领域实际都是错的、用不起来的一个知识点了。网上太多太多教程和案例用的是一个叫hujiang的AOP组件-com.hujiang.aspectjx:gradle-android-plugin-aspectjx。首先这些错的文章我不知道是怎么来的,其次那些案例真的运行成功…

数据库浅谈之 Bloom Filter

数据库浅谈之 Bloom Filter HELLO,各位博友好,我是阿呆 🙈🙈🙈 这里是数据库浅谈系列,收录在专栏 DATABASE 中 😜😜😜 本系列阿呆将记录一些数据库领域相关的知识 &am…

场景扩展,体验升级 | DBMotion新增无公网数据库迁移、支持监控报警等多项功能

丝滑的零停机数据库在线迁移工具——DBMotion,又双叒叕发新版:新增的网关、数据源功能,让你无公网IP的数据库也可以迁移;新增的监控功能,让你对迁移性能一目了然;新增的报警功能,让你及时获得同…

什么是SSL端口?HTTPS配置技术指南

安全套接字层(SSL)是负责互联网连接的数据身份验证和加密的技术。它加密在两个系统之间(通常在服务器和客户端之间)之间通过互联网发送的数据,使其保持私密。随着在线隐私的重要性日益增加,您应该熟悉SSL端…

【C语言】指针的定义和使用

指针一、什么是指针二、指针类型三、指针和数组的关系四、空指针五、野指针一、什么是指针 指针(Pointer)是编程语言中的一个对象,通过地址直接指向内存中该地址的值。由于通过地址能够找到所需的变量存储单元,可以说地址指向该变…

小样本学习

机器学习就是从数据中学习,从而使完成任务的表现越来越好。小样本学习是具有有限监督数据的机器学习。类似的,其他的机器学习定义也都是在机器学习定义的基础上加上不同的限制条件衍生出来。例如,弱监督学习是强调在不完整、不准确、有噪声、…

springboot+vue.js校园车辆用车预约管理系统

springboot是基于spring的快速开发框架, 相比于原生的spring而言, 它通过大量的java config来避免了大量的xml文件, 只需要简单的生成器便能生成一个可以运行的javaweb项目, 是目前最火热的java开发框架 前端技术:nodejsvueelementui本项目的应用场景描述如下&…

ARM+FPGA架构开发板PCIE2SCREEN示例分析与测试-米尔MYD-JX8MMA7

本篇测评由电子发烧友的优秀测评者“zealsoft”提供。 本次测试内容为米尔MYD-JX8MMA7开发板其ARM端的测试例程pcie2screen并介绍一下FPGA端程序的修改。 ​ 01. 测试例程pcie2screen 例程pcie2screen是配合MYD-JX8MMA7开发板所带的MYIR_PCIE_5T_CMOS 工程的测试例&#…