目錄html
對抗神經網絡python
參考:http://www.javashuo.com/article/p-opzashmi-dy.htmlgit
官方詳細介紹:https://affinelayer.com/pix2pix/github
這篇博客中詳細介紹瞭如何搭建tensorflow環境docker
# clone this repo git clone https://github.com/affinelayer/pix2pix-tensorflow.git cd pix2pix-tensorflow # download the CMP Facades dataset (generated from http://cmp.felk.cvut.cz/~tylecr1/facade/) 下載數據集 python tools/download-dataset.py facades # 訓練數據 python pix2pix.py \ --mode train \ # 設置mode爲訓練模式 --output_dir facades_train \ # 輸出地址 --max_epochs 200 \ # 最大神經元熟練 --input_dir facades/train \ # 輸入訓練集所在地址 --which_direction BtoA # 方向 # 測試模型 python pix2pix.py \ --mode test \ #設置測試模式 --output_dir facades_test \ # 輸出地址 --input_dir facades/val \ # 輸入地址 --checkpoint facades_train # 檢查點保存
測試結果:shell
facades_train ├── checkpoint ├── events.out.tfevents.1534087226.learner-pc ├── events.out.tfevents.1534126535.learner-pc ├── graph.pbtxt ├── model-80000.data-00000-of-00001 ├── model-80000.index ├── model-80000.meta └── options.json
其中facades_train記錄的是檢查點checkpointjson
facades_test ├── events.out.tfevents.1534229330.learner-pc ├── graph.pbtxt ├── images │ ├── 1-inputs.png .... │ └── 1-targets.png .... ├── index.html └── options.json
其中facades_test記錄的是訓練的結果,能夠打開index.html進行查看具體的內容網絡
你須要製做圖片A,B,而後合成一張圖片,做爲一個訓練圖片。測試
其餘數據集請見https://github.com/pprp/pix2pix-tensorflowthis
示意圖:
# Resize source images, 如上圖,進行resize python tools/process.py \ --input_dir photos/original \ --operation resize \ --output_dir photos/resized # Create images with blank centers # 如上圖,建立空白 python tools/process.py \ --input_dir photos/resized \ --operation blank \ --output_dir photos/blank # Combine resized images with blanked images # 結合兩張圖片 python tools/process.py \ --input_dir photos/resized \ --b_dir photos/blank \ --operation combine \ --output_dir photos/combined # Split into train/val set # 將圖片進行分配 python tools/split.py \ --dir photos/combined
若是您有兩個目錄,a
而且b
具備相應的圖像(相同的名稱,相同的尺寸,不一樣的數據),您能夠將它們與process.py
:
python tools/process.py \ --input_dir a \ --b_dir b \ --operation combine \ --output_dir c
這使得圖像成爲pix2pix.py
指望的並排組合圖像。
對於着色,理想狀況下,您的圖像應具備相同的寬高比。您可使用resize命令調整大小並裁剪它們:
python tools/process.py \ --input_dir photos/original \ --operation resize \ --output_dir photos/resized
不須要其餘處理,着色模式(參見下面的訓練部分)使用單個圖像而不是圖像對。
因爲圖片是成對的,你能夠決定圖片的方向是AtoB
or BtoA
以maps數據集爲例:
python pix2pix.py \ --mode train \ --output_dir maps_train \ --max_epochs 200 \ --input_dir maps/train \ --which_direction BtoA
pix2pix.py
包括使用單個圖像而不是成對處理着色的特殊代碼,使用以下所示:
python pix2pix.py \ --mode train \ --output_dir photos_train \ --max_epochs 200 \ --input_dir photos / train \ --lab_colorization
在該模式中,圖像A是黑白圖像(僅亮度),圖像B包含該圖像的顏色通道(沒有亮度信息)。
您可使用tensorboard查看損失和計算圖:
tensorboard --logdir = facades_train
若是您但願在網絡培訓時編寫正在進行的圖片,請使用--display_freq 50
。這將facades_train/index.html
使用當前的訓練輸入和輸出更新每50個步驟。
測試完成--mode test
。您應該指定要使用的檢查點--checkpoint
,這應該指向output_dir
您以前建立的--mode train
以maps數據集爲例:
python pix2pix.py \ --mode test \ --output_dir maps_test \ --input_dir maps/val \ checkpoint maps_train
測試模式將從提供的檢查點加載一些配置選項,所以您無需指定which_direction
實例。
測試運行將輸出一個HTML文件facades_test/index.html
,顯示輸入/輸出/目標圖像集
Validation of the code was performed on a Linux machine with a ~1.3 TFLOPS Nvidia GTX 750 Ti GPU and an Azure NC6 instance with a K80 GPU.
git clone https://github.com/affinelayer/pix2pix-tensorflow.git cd pix2pix-tensorflow python tools/download-dataset.py facades sudo nvidia-docker run \ --volume $PWD:/prj \ --workdir /prj \ --env PYTHONUNBUFFERED=x \ affinelayer/pix2pix-tensorflow \ python pix2pix.py \ --mode train \ --output_dir facades_train \ --max_epochs 200 \ --input_dir facades/train \ --which_direction BtoA sudo nvidia-docker run \ --volume $PWD:/prj \ --workdir /prj \ --env PYTHONUNBUFFERED=x \ affinelayer/pix2pix-tensorflow \ python pix2pix.py \ --mode test \ --output_dir facades_test \ --input_dir facades/val \ --checkpoint facades_train
nvidia-docker能夠參看以前的文章進行安裝
主要是官方給出的說明:references