本人在复现(2021CVPR)DG-Font: Deformable Generative Networks for Unsupervised Font Generation这篇文章时出现的问题(主要是DCNv2的环境配置问题)想与大家做以交流和分享。
(DCNv2)Git链接:
GitHub - chengdazhi/Deformable-Convolution-V2-PyTorch at pytorch_1.0.0
本文注重实际操作,帮助大家解决环境配置的实际问题。
一、关于DCNv2的导入
关于模块导入,大家点开上面跳转的Git链接,进去页面,本地git clone命令即可(没安装git的,可以直接download zip本地解压)
下载后,大家一般是用来嵌入到模块内部,这个具体就要看大家要复现的代码了,本文主要是复制到项目内。
那么接下来根据DCNv2的ReadMe文件,首先是要操作如下命令:
sh make.sh
但是,但是!请切记,你运行test.py文件时,你大概率可能会报如下错误:
或者是什么包里面的modulated_deform_conv_func的某个函数有问题……可你明明看到整个DCNv2的包内有这个函数,就是用不了……
这些基本都是编译问题或者你的Torch包和CUDA的版本问题。
(作为新时代深度学习的入坑者之一,配环境的痛大家都知道吧QAQ)
闲话不多说,既然导入了DCNv2,咱们继续配环境。
二、关于DCNv2的环境配置
此时你在纠结,我的DCNv2用不了,那后面是不是都废掉了……
我想说的是,你看到这里有两种方法
- 你的整个项目重新搭建模块,换成其他的DCN版本,不用这种方式导入;
- 另一种就是继续跟我一起把环境配好,如果你想忠于原文得到结果,我觉得这种方法是不差的,而且能够提高你解决同类型问题的能力。
接下来,如果你继续配置环境,那么可以尝试第一步
看一下你采用的CUDA和pytorch版本,考虑换成我推荐的版本
(这个亲测有效,我也换了好多好多的pytorch版本,最后确定就是这个好用了)
CUDA:11.6
Torch:1.11.0
python:3.7
Visual Studio:2017
这里你可以去官网下载CUDA11.6版本的驱动,那么pytorch的,如果你是Conda环境下的,去搜一下Previous PyTorch Versions | PyTorch找到这个对应版本。
这里给大家两种命令安装,个人推荐pip,但是注意你本地的pip路径和当前的虚拟环境,不然容易乱!
# CUDA 11.3
pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113
# CUDA 11.3
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge
我这里都采用的调用GPU方式哈,在Linux&Windows下,其他环境请查看官网对应版本。
CUDA高版本可以兼容低版本的,这个大家不用担心。
加载好记得本地测试一下调用cuda是否可用即可(先进入虚拟环境的python):
import torch
print(torch.cuda.is_available())
是True那就行了。
三、关于DCNv2的编译问题
这个是依赖于你的VS命令提示符编译的!不是你的本地cmd,更不是你的程序里面直接编译!而且要看你的位数(32 or 64)不然会编译一半,删除还很麻烦,一般都是64位的,具体还是看你自己的电脑环境哈,多留心一下。
- 切换目录:cd进去即可,如果是conda的虚拟环境,一定要激活当下的虚拟环境;
- set DISTUTILS_USE_SDK=1;
- 运行make.sh里面的命令。
例如:(这是我的目录切换哈,大家根据自己的实际情况操作)
cd /d D:\graduate\DGFontmain\DCNv2
set DISTUTILS_USE_SDK=1
python setup.py build all
这样就开始编译啦,希望能看到大家这个页面:
那到这里,整个你的DCNv2就没有问题啦,也不存在有函数没方法的问题,关于你其他训练测试问题,那就是具体代码的参数调整了。
深度学习还是这个时期的热门产物,但是当你遇到好多像一些包的问题或者其他环境问题,真的觉得这个生态太重要了。还是希望大家多多支持,以后遇到问题我会多多分享,希望我的文章能帮助到大家!