1. 程式人生 > >首次執行 tensorflow 專案之 vgg 網路

首次執行 tensorflow 專案之 vgg 網路

首次執行 tensorflow 專案之 vgg 網路

文章目錄

1. 下載所需檔案

下載路徑
在這裡插入圖片描述
首先將需要的檔案下載下來,放到一個資料夾中,這裡我的路徑是E:\vgg
資料夾路徑
這是需要的檔案,第一個是資料集,第二個資料夾包含了模型程式碼以及訓練集和少量測試集。

2. 在 pycharm 中開啟專案

在這裡插入圖片描述

點選 open,開啟我們剛才在 E 盤建立的資料夾 vgg,如圖

在這裡插入圖片描述

3. 為專案設定 python 編譯器

File --> settings -->
在這裡插入圖片描述
選擇 project interpreter
在這裡插入圖片描述
這裡的 location 需要填一個空的資料夾
Base interpreter 選擇 Python35,因為只有 Python35 才搭建了 tensorflow 框架

4. 除錯程式碼

1. train.py

首先執行 train.py,如圖
在這裡插入圖片描述
一執行就開始報錯,開始我們的修 bug 之路吧
在這裡插入圖片描述
原來是 print 輸出函式格式有問題,將其改為print() 就可以了
再次執行,又報錯了
在這裡插入圖片描述


來看看報了什麼錯誤
導包失敗,說是沒有 tensorflow 這個包,對症下藥,那就導包咯
在這裡插入圖片描述
點選 install package tensorflow
在這裡插入圖片描述
稍等片刻
在這裡插入圖片描述
導包成功
再次執行,有 warning 產生,如圖
在這裡插入圖片描述
中文意思是 提示你 tensorflow.python.ops.nn_ops 中的softmax_cross_entropy_with_logits方法已棄用,並將在以後的版本中刪除 更新說明:TensorFlow未來的主要版本將在預設情況下允許梯度值流入到後向傳播標籤輸入。具體請參閱官方的 tf.nn.softmax_cross_entropy_with_logits_v2。所以就是說當前這個方法可行但以後更新框架版本時,該方法會取消掉。並不影響當前框架下的運用。

不影響使用,暫時就先不管它了
再次執行,還有錯
在這裡插入圖片描述
還是 print 函式問題,,VGG16.py 檔案中還有幾個類似的錯誤,就不一一截圖了
再修改完所有的 print 函式之後,再次執行 train.py,錯誤如下
在這裡插入圖片描述
說是找不到 vgg16.npy 檔案
在這裡插入圖片描述
發現這裡面確實沒有 vgg16.npy 檔案,於是上網下載一個,放入 train.py 所在的資料夾中
在這裡插入圖片描述
再次執行 train.py
在這裡插入圖片描述
第一個警告剛剛說了不用管,看看第二個錯誤
Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
大概意思是:你的CPU支援AVX擴充套件,但是你安裝的TensorFlow版本無法編譯使用。
解決方法: import os
os.environ[‘TF_CPP_MIN_LOG_LEVEL’] = ‘2’

再次執行,讓我們來看看執行結果
在這裡插入圖片描述

訓練完成之後就開始測試

2. test.py

首次執行 test.py
在這裡插入圖片描述
熟悉的錯誤,不用多說了

修改 print 函式之後再次執行
在這裡插入圖片描述

導包錯誤,沒有 opencv 的包,老方法,選擇第二個
在這裡插入圖片描述
導包成功之後再次執行
在這裡插入圖片描述
根據 restore 這個函式,我猜測這個函式是想把訓練模型儲存起來以便下次呼叫,我也不知道怎麼改,因此就將程式碼註釋掉了。
#saver.restore(sess, ‘./model/model.ckpt-9999’)

註釋之後的執行結果
在這裡插入圖片描述
換個資料集跑一跑
在這裡插入圖片描述