博客
关于我
风格迁移2-02:MUNIT(多模态无监督)-源码训练测试-报错解决
阅读量:727 次
发布时间:2019-03-21

本文共 2442 字,大约阅读时间需要 8 分钟。

MUNIT(多模态无监督)-图片风格转换

大家好,今天我将分享我对MUNIT项目的深入理解。由于这是一个持续进化的项目,我可能讨论的某些内容可能已经过时。我会尽量提供准确的信息,如果发现任何错误,请随时指出,我会第一时间进行修正。

为了方便和技术交流,我开通了微信号:a944284742,欢迎加入讨论。如果您觉得这篇文章对您有帮助,请记得点赞支持我!


环境安装

作为PyTorch 开源项目开发者,我建议使用PyTorch官方文档中的安装教程。本人使用CUDA 10.0版本搭建了PyTorch 1.2.0, CircularProgress 运行如下指令:

conda create -n pytorch-MUNIT -y python=3.6 conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch

接着通过上述指南下载并安装必要的依赖项:

python -m pip install --upgrade pip pip install torch-1.0.0-cp36-cp36m-win_amd64.whl

安装完成后,确保PyCharm 仿照以下步骤配置环境,以便测试和训练程序顺利运行。


代码测试

入门测试阶段,先查看项目文档中的README.md文件,执行示例脚本:

python test.py --config configs/edges2shoes_folder.yaml --input inputs/edge.jpg --output_folder outputs --checkpoint models/edges2shoes.pt --a2b 1

错误处理

错误一:ModuleNotFoundError: 不符合 'torchfile' 模块

解决方法:

pip install torchfilepip install numpypip install torchvision==0.2.1pip install pyyaml

错误二:输入文件路径错误

确保输入文件路径正确:

# 更新图片名即可,执行:python test.py --config configs/edges2shoes_folder.yaml --input inputs/edges2shoes_edge.jpg --output_folder outputs --checkpoint models/edges2shoes.pt --a2b 1

生成的输出文件可在 output 目录找到,如下所示:


数据训练

在训练代码开始前,确保数据格式正确。查看 edges2shoes_folder.yaml 中的 data_root 对应的目录结构:

# 修改数据路径:data_root: ../2.Dataset/edges2shoes

此外,需正确解压并预处理数据集。按照以下步骤执行:

for f in train/*; do convert -quality 100 -crop 50%x100% +repage $f train%d/${f##*/}; done;for f in val/*; do convert -quality 100 -crop 50%x100% +repage $f test%d/${f##*/}; done;mv train0 trainA mv train1 trainB mv test0 testA mv test1 testB

训练完成后,可在 trainAtrainB 目录中找到预处理后的数据。


Potential Issue & 错误修复

错误一: tensorboardX 模块缺失

安装以下库以修复 tensorboardX 错误:

pip install tensorboardX

错误二:数据目录验证错误

确保训练数据目录结构正确:

# 示例:[trainA] contains trainA|  233$total.jpg+디바

错误三:文件路径处理异常

train.py 中添加适当的条件判断,以支持主程序和批量处理运行:

import shutilif __name__ == '__main__':    parser = argparse.ArgumentParser()    parser.add_argument('--config', type=str, required=True, help='路径配置文件')    parser.add_argument('--input', type=str, required=True, help='输入文件路径')    parser.add_argument('--output_folder', type=str, required=True, help='输出目录')    parser.add_argument('--checkpoint', type=str, required=True, help='检查点路径')    parser.add_argument('--a2b', type=int, required=True, default=0,                        help='是否进行a₂b风格转换(1表示转换,0表示不转换)')    parser.add_argument('--style', type=str, dest='style_path', required=False, \                        help='指定使用的风格图片')

结语

到这里,代码已顺利运行。下一步,我会为大家翻译相关论文,并提供源码解读。请关注后续更新,期待与大家的技术交流!

转载地址:http://ppigz.baihongyu.com/

你可能感兴趣的文章
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>
Mysql中怎样使用update更新某列的数据减去指定值
查看>>
Mysql中怎样设置指定ip远程访问连接
查看>>
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>
Mysql中文乱码问题完美解决方案
查看>>
mysql中的 +号 和 CONCAT(str1,str2,...)
查看>>
Mysql中的 IFNULL 函数的详解
查看>>
mysql中的collate关键字是什么意思?
查看>>
MySql中的concat()相关函数
查看>>
mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
查看>>
MySQL中的count函数
查看>>
MySQL中的DB、DBMS、SQL
查看>>