最终的解决方法:在Autodl上直接配置了一个tensorflow=2.4.0基础环境,然后上传代码运行的。运行参数参见第二部分。
Process finished with exit code -1073740791 (0xC0000409)
Emulate terminal in output console
,输出控制台中的模拟终端)出现了报错2😢
Could not locate zlibwapi.dll. Please make sure it is in your library path!
参考了这个步骤:(下载链接:https://www.dll-files.com/zlibwapi.dll.html)
出现了报错3😢
评论区还有一个方法,但是没看懂,就没试:
Could not load library cudnn_cnn_infer64_8.dll. Error code 193
点击进行官方网址,直接定位到了zLibDll
的位置:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#install-zlib-windows
下面为中文翻译:
Resource exhausted: failed to allocate memory
然后还是没有解决。应该就是显存太小了。所以就还是放到AutoDL上跑代码了。
由始至终都是只需要调用文件pix2pix_spade_resnet_v2.py
,关于模型的构建、数据的加载方式等,都在这一个文件中。
其实对照着参数列表,慢慢设置就可以了。但是要注意一下:
--mode
:有3种方式choices=["train", "test", "export"]
,分别用来表示用于训练、测试、导出--output_dir
:表示本次训练or测试的权重等结果保存的位置--checkpoint
:默认是为None
,如果指定了checkpoint目录位置
,则1)配合着mode=train
就是断点训练,2)配合着mode=test
就是进行测试--batch_size
:在AutoDL中可以设置到32,在本地上根本跑不起来--which_direction
:这是重点,在我的训练中,是需要指定方向为BtoA
才行,否则在训练到200轮左右就会开始梯度爆炸,即所有loss都呈现nan
。在AutoDL中用于train的命令:
先进入到base或者tensorflow虚拟环境。因为我默认选择的base就是tensorflow=2.5.0的环境,然后还自己又创建了一个新的tensorflow=2.4.0环境。
一直cd进入到code目录
下,输入以下命令:
(目前就只是设置了这些命令,可以在后面再试一下其他的命令,调下参)
python pix2pix_spade_resnet_v2.py --input_dir ../dataset/train --mode train --output_dir ../checkpoint --max_epochs 300 --batch-size 32 --which_direction BtoA
命令行中的--checkpoint
使用于指明希望使用那个文件夹下的权重文件,可不要指示错了!--batch_size
和--which_direction
我不清楚是否需要设置得与train一致,但是我还是保持的跟train一致。
python pix2pix_spade_resnet_v2.py --input_dir ../dataset/test --mode test --output_dir ../checkpoint --batch-size 32 --which_direction BtoA