風格遷移2-02:MUNIT(多模態無監督)-源碼訓練測試-報錯解決

以下鏈接是個人關於 MUNIT(多模態無監督)-圖片風格轉換,的所有見解,如有錯誤歡迎大家指出,我會第一時間糾正。有興趣的朋友可以加微信 a944284742 相互討論技術。若是幫助到了你什麼,一定要記得點贊!因爲這是對我最大的鼓勵。
風格遷移2-00:MUNIT(多模態無監督)-目錄-史上最新無死角講解

2020/04/3\color{red}{注意,本人編寫該博客的時間爲2020/04/3,也就是說,你現在下載的作者代碼或許}
調Winds\color{red}{和本人的代碼不一樣(如果作者有更新過)還有就是,本人調試該代碼爲Winds系統}
Winds使pycharm\color{red}{即下面的報錯都是Winds下使用pycharm報錯的過程,以及解決辦法}

環境安裝

這是pytorch官網安裝指南:https://pytorch.org/get-started/previous-versions/
本人的cuda版本爲cuda10.0,pytorch爲v1.0.0(上鍊接可以找到),主要使用anconda3執行了如下指令:

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

 # 下載安裝包(從前面的官網鏈接找到合適版本),從其中找到合適的版本
 https://download.pytorch.org/whl/cu100/torch_stable.html

 # 下載完成之後執行如下指令
 python -m pip install --upgrade pip
 pip install torch-1.0.0-cp36-cp36m-win_amd64.whl

安裝完成之後,請配置好pycharm,下面我們就開始調試代碼了,起碼要讓測試以及訓練程序跑起來。再這之前,通過上一篇博客,大家應該下載好了預訓練模型,放置如下:
在這裏插入圖片描述

代碼測試

首先,我們還是先閱讀項目中的README.md,進入其中的Please check out the user manual page:
https://github.com/NVlabs/MUNIT/blob/master/USAGE.md
可以看到如下:
在這裏插入圖片描述
直接粘貼複製再終端運行:

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

報錯一
File “E:\2.ChiPeak\3.FaceDataGenerate\1.MUNIT\1.MUNIT-master\utils.py”, line 6, in
import torchfile
ModuleNotFoundError: No module named ‘torchfile’

pip install torchfile
pip install numpy
pip install torchvision==0.2.1
pip install pyyaml

報錯二
File “D:\Users\94428\anaconda3\envs\pytorch-MUNIT\lib\site-packages\PIL\Image.py”, line 2843, in open
fp = builtins.open(filename, “rb”)
FileNotFoundError: [Errno 2] No such file or directory: ‘inputs/edge.jpg’

inputs目錄存在文件如下:
在這裏插入圖片描述

# 修改一下圖片名即可,執行如下
python test.py --config configs/edges2shoes_folder.yaml --input inputs/edges2shoes_edge.jpg --output_folder outputs --checkpoint models/edges2shoes.pt --a2b 1

然後在輸出目錄可以看到如下照片:
在這裏插入圖片描述
這樣我們就完成了初步的測試,可以在執行如下指令

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

可以看到其生成了綠色的鞋子圖片如下:
在這裏插入圖片描述

數據訓練

我們可以看到如下部分:
在這裏插入圖片描述
先不管那麼多,我們執行:

python train.py --config configs/edges2shoes_folder.yaml

報錯一
Traceback (most recent call last):
File “train.py”, line 17, in
import tensorboardX
ModuleNotFoundError: No module named ‘tensorboardX’

pip install tensorboardX

報錯二

File “E:\2.ChiPeak\3.FaceDataGenerate\1.MUNIT\1.MUNIT-master\data.py”, line 91, in make_dataset
assert os.path.isdir(dir), ‘%s is not a valid directory’ % dir
AssertionError: ./datasets/edges2shoes/trainA is not a valid directory

本人數據目錄放置如下:
在這裏插入圖片描述
所以修改 edges2shoes_folder.yaml 的代碼如下

#data_root: ./datasets/edges2shoes/     # dataset folder location
data_root: ../2.Dataset/edges2shoes        # dataset folder location

報錯三

File “E:\2.ChiPeak\3.FaceDataGenerate\1.MUNIT\1.MUNIT-master\data.py”, line 91, in make_dataset
assert os.path.isdir(dir), ‘%s is not a valid directory’ % dir
AssertionError: …/2.Dataset/edges2shoes\trainA is not a valid directory
該錯誤表示,我們數據的格式,是不符合規範的。

本人蔘考 scripts/demo_train_edges2shoes.sh 腳本對數據做了處理,本人比較尷尬,因爲都 wind 和 linux 的腳本書寫都比較陌生,所以把數據拷貝到 linux 下,把 edges2shoes.tar.gz 解壓之後,得到 edges2shoes 目錄如下:
在這裏插入圖片描述
在該目錄(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

執行完之後,目錄顯示如下:
在這裏插入圖片描述
本人用的辦法真的蠢,哈哈。然後又壓縮,放置到 winds 下的原目錄中。

報錯四
in the main module:
if name == ‘main’:
freeze_support()

該錯誤主要是沒有在 linux 環境下導致的結果,在 train.py 添加 if name == ‘main’: 如下:

import tensorboardX
import shutil
if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    ......

其後的代碼都右移一個 tab 鍵。

調試成功之後,本人打印如下:

Elapsed time in update: 7.770969
Elapsed time in update: 0.784000
Elapsed time in update: 0.757999
Elapsed time in update: 0.749000
Elapsed time in update: 0.754998
Elapsed time in update: 0.757999
Elapsed time in update: 0.756999
Elapsed time in update: 0.761999
Elapsed time in update: 0.755001
Elapsed time in update: 0.753999
Iteration: 00000010/01000000
Elapsed time in update: 0.766001
Elapsed time in update: 0.758998
Elapsed time in update: 0.758000
Elapsed time in update: 0.641000
Traceback (most recent call last):

結語

到這裏爲止,代碼已經跑起來了,下面會爲大家進行論文翻譯,以及源碼的閱讀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章