【用于图像修复、数据增强等】结合官方代码教程,在Windows 10下运行pix2pix-tensorflow(tensorflow==1.4.0 python=3.6)
目錄
- 參考鏈接
- 0. 安裝所需環境tensorflow==1.4.1 python=3.6
- 1. 制作數據集
- 1.1 我原本的數據集分布
- 1.2 運行代碼`tools/process.py`生成pix2pix所需圖像
- 2. 開始訓練
- 3. 代碼更改與學習記錄
- 3.1 加入代碼,記錄log打印日志
- 3.2 損失的作用和標準
- 4. 錯誤記錄
- 3.1 執行train.py時,出現錯誤:Nan in summary histogram【梯度爆炸】
參考鏈接
-
github代碼:👉github-pix2pix-tensorflow(這個版本的代碼是比較老的,tensorflow框架的。直接在github上搜索pix2pix可以直接檢索到最新的基于Pytorch的代碼:pytorch-CycleGAN-and-pix2pix)
-
相關的文章:從樣本到部署Pix2Pix圖像翻譯案例全流程記錄
-
Linux環境下的配置可以參考:AotuDL中Linux環境下運行pix2pix-tensorflow的環境配置(tensorflow==1.8.0 python==3.6)
-
pix2pix、pix2pixHD 通過損失日志進行訓練可視化
0. 安裝所需環境tensorflow==1.4.1 python=3.6
github上的代碼說的需要的版本是tensorflow==1.4.1,但是找遍全網,發現并沒有1.4.1的版本,全部都是關于1.4.0版本的安裝。然后就看到了這個問題的回答:I am not able to install tensorflow=1.4.1。大概意思就是說:tensorflow==1.4.1是在Linux中可使用的版本,在Windows下可用1.4.0版本替代(然偶看了下github代碼,確實他是在Linux下運行的)
所以就參考這篇博文安裝1.4.0版本:tensorflow1.4的詳細安裝教程,我下載的是GPU的tensorflow1.4.0,點擊可直接下載👉tensorflow_gpu-1.4.0-cp36-cp36m-win_amd64.whl
#-------------------------可能會用到的命令----------------------------#
- 查看已有的虛擬環境:conda info --env
- 刪除不想要的虛擬環境:conda remove -n xxx -all
- 如需修改虛擬環境默認安裝路徑,可參考:Anaconda 修改默認虛擬環境安裝位置
#--------------------------------------------------------------------------------#
在這個里面鍵入以下命令:
點擊下載鏡像:tensorflow_gpu-1.4.0-cp36-cp36m-win_amd64.whl
然后鍵入以下命令:(鍵入這個鏡像的絕對路徑。conda不好用時,可換成pip。-i后面是引用豆瓣源加速)
conda install .../tensorflow_gpu-1.4.0-cp36-cp36m-win_amd64.whl -i http://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com- 參考這篇文章知道應該安裝keras=2.0.8的版本:解決AttributeError: module ‘tensorflow‘ has no attribute ‘placeholder‘問題(只是暫存一下,還沒有做關于keras的修改,看了一下安裝的tensorflow好像沒有自帶著下載keras,所以需要用keras時再下載2.0.8版本的吧)
點擊直接下載👇,下載后的安裝流程可參考tensorflow-gpu版本安裝教程(過程詳細):
- CUDA:cuda_9.1.85_win10.exe
- cudnn:cudnn-9.1-windows10-x64-v7
我的顯卡是RTX3050,可用的是CUDA v11.3的,所以之前就已經安裝過CUDA113了,對應安裝了tensorflow=2.6.0 python=3.8的。但是本文的代碼是需要tensorflow=1.4.0 python=3.6的,對應的CUDA是版本 v9.1的,所以我需要重新安裝CUDA v.9.1以及相應cudnn。
但是我原本的CUDA v11.3并沒有卸載。我看有的文章說的一臺電腦可安裝多個CUDA,不同虛擬環境中的tensorflow會自動選擇對應的CUDA版本,只要在環境變量中指明了每個CUDA的安裝位置即可(其實在每個CUDA安裝的時候,都會自動將自己的路徑添加系統變量path,如下圖,但是要留意一下圖中的2點,現在是指向v9.1的,不知道會不會影響v11.3的使用,要以后用到了才知道咯~)
發現安裝了CUDAv9.1之后多了個這個:
Visual Profiler 是是一個圖形化的剖析工具,可以顯示你的應用程序中CPU和GPU的活動情況,利用分析引擎幫助你尋找優化的機會。(摘錄自CUDA入門(四)Visual Profiler)
1. 制作數據集
1.1 我原本的數據集分布
G:. ├─images │ ├─train │ └─val ├─labels │ ├─train │ └─val1.2 運行代碼tools/process.py生成pix2pix所需圖像
需要用到的4個重要參數:
運行后的文件夾分布為:
G:. ├─images │ ├─train │ └─val ├─labels │ ├─train │ └─val -------------------上面是原本的數據-------------------- ------------------下面是合并后的數據-------------------- ├─train └─val整體的運行命令:
- 合并生成train數據集:
- 合并生成val數據集:
合并后的圖像示例:(其實就是直接把兩張圖片橫著拼在一起了,自己寫代碼也能實現)
2. 開始訓練
可以啟動visdom查看曲線,但是啟動visdom就會占用一個終端。而運行的代碼也需要從終端鍵入命令。所以應該可以類似這樣去輸入:python -m visdom.server & python train.py
傳入的地址須要是絕對地址:
python pix2pix.py --input_dir G:\pycharmprojects\pytorch-CycleGAN-and-pix2pix-master\datasets\linedataset\train --mode train --outp ut_dir runs/linedata_pix2pix --max_epochs 200 --which_direction BtoA --batch_size 32訓練過程中的終端界面:
(如果顯存不夠,很大可能就一直卡在這個地方了。所以我選擇在AutoDL云服務器上調大batch_size跑代碼。想使用AutoDL的可參考博客:AutoDL使用教程:1)創建實例 2)配置環境+上傳數據 3)PyCharm2021.3專業版下載安裝與遠程連接完整步驟)
3. 代碼更改與學習記錄
3.1 加入代碼,記錄log打印日志
如下,在pix2pix.py的793行代碼下面添加如下代碼:
代碼:
3.2 損失的作用和標準
參考自官方文檔:https://www.tensorflow.org/tutorials/generative/pix2pix
4. 錯誤記錄
3.1 執行train.py時,出現錯誤:Nan in summary histogram【梯度爆炸】
- 參考鏈接:執行train.py時,訓練到一半出現錯誤:Nan in summary histogram for: ModelVars/FeatureExtractor/MobilenetV1/Conv
出現原因:batch-size設為了1
解決方法:batch-size不設為1(設置成偶數比較好)(好像并沒有解決)
- 參考鏈接:pix2pix-tensorflow的一個issue:Invalid argument: Nan in summary histogram for: generator/encoder_1/conv2d/kernel/values #190,見下圖,說的是學習率太高了(所以我將--lr參數設置為了0.00001)
- 參考鏈接:stackoverflow-Nan in summary histogram,通常 NaN 是模型不穩定的標志,例如梯度爆炸
總結
以上是生活随笔為你收集整理的【用于图像修复、数据增强等】结合官方代码教程,在Windows 10下运行pix2pix-tensorflow(tensorflow==1.4.0 python=3.6)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 佛祖保佑 ,神兽保佑 , 代码神注释鉴赏
- 下一篇: React的受控组件和非受控组件