1. 下載所需文件
下載路徑
首先將需要的文件下載下來,放到一個文件夾中腻菇,這里我的路徑是E:\vgg
這是需要的文件,第一個是數(shù)據(jù)集,第二個文件夾包含了模型代碼以及訓(xùn)練集和少量測試集叛甫。
2. 在 pycharm 中打開項(xiàng)目
點(diǎn)擊 open,打開我們剛才在 E 盤建立的文件夾 vgg杨伙,如圖
3. 為項(xiàng)目設(shè)置 python 編譯器
File --> settings -->
選擇 project interpreter
這里的 location 需要填一個空的文件夾
Base interpreter 選擇 Python35其监,因?yàn)橹挥?Python35 才搭建了 tensorflow 框架
4. 調(diào)試代碼
1. train.py
首先運(yùn)行 train.py,如圖
一運(yùn)行就開始報錯缀台,開始我們的修 bug 之路吧
原來是 print 輸出函數(shù)格式有問題棠赛,將其改為print() 就可以了
再次運(yùn)行,又報錯了
來看看報了什么錯誤
導(dǎo)包失敗,說是沒有 tensorflow 這個包睛约,對癥下藥鼎俘,那就導(dǎo)包咯
點(diǎn)擊 install package tensorflow
稍等片刻
導(dǎo)包成功
再次運(yùn)行,有 warning 產(chǎn)生辩涝,如圖
中文意思是 提示你 tensorflow.python.ops.nn_ops 中的softmax_cross_entropy_with_logits方法已棄用贸伐,并將在以后的版本中刪除 更新說明:TensorFlow未來的主要版本將在默認(rèn)情況下允許梯度值流入到后向傳播標(biāo)簽輸入。具體請參閱官方的 tf.nn.softmax_cross_entropy_with_logits_v2怔揩。所以就是說當(dāng)前這個方法可行但以后更新框架版本時捉邢,該方法會取消掉。并不影響當(dāng)前框架下的運(yùn)用商膊。
不影響使用伏伐,暫時就先不管它了
再次運(yùn)行,還有錯
還是 print 函數(shù)問題晕拆,藐翎,VGG16.py 文件中還有幾個類似的錯誤,就不一一截圖了
再修改完所有的 print 函數(shù)之后实幕,再次運(yùn)行 train.py吝镣,錯誤如下
說是找不到 vgg16.npy 文件
發(fā)現(xiàn)這里面確實(shí)沒有 vgg16.npy 文件,于是上網(wǎng)下載一個昆庇,放入 train.py 所在的文件夾中
再次運(yùn)行 train.py
第一個警告剛剛說了不用管末贾,看看第二個錯誤
Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
大概意思是:你的CPU支持AVX擴(kuò)展,但是你安裝的TensorFlow版本無法編譯使用整吆。
解決方法:
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
再次運(yùn)行拱撵,讓我們來看看運(yùn)行結(jié)果
訓(xùn)練完成之后就開始測試
2. test.py
首次運(yùn)行 test.py
熟悉的錯誤,不用多說了
修改 print 函數(shù)之后再次運(yùn)行
導(dǎo)包錯誤掂为,沒有 opencv 的包裕膀,老方法,選擇第二個
導(dǎo)包成功之后再次運(yùn)行
根據(jù) restore 這個函數(shù)勇哗,我猜測這個函數(shù)是想把訓(xùn)練模型存儲起來以便下次調(diào)用昼扛,我也不知道怎么改,因此就將代碼注釋掉了欲诺。
注釋saver.restore(sess, './model/model.ckpt-9999')
注釋之后的運(yùn)行結(jié)果
換個數(shù)據(jù)集跑一跑
Finish.