Tensorflow訓練和測試時輸入數據數量不同的解決方法

分爲以下兩種方法:
1 將訓練的模型保存爲ckpt格式,訓練時一次訓練batch_size張圖片(比如設爲8,16,32等),測試時再重新設置不同的batch_size(比如一次只想測試一張圖片,則將batch_size設爲1),然後進行inference並restore保存的ckpt模型
在這裏插入圖片描述
在這裏插入圖片描述

2 如果將模型保存爲pb格式,那麼模型被固化,測試時數據的shape必須與訓練時輸入的數據shape保持一樣,此時如果想實現測試時的batchsize大小隨意設置, 那麼在訓練時, 輸入的placeholder的shape應該設置爲[None, H, W, C]. 訓練和測試feed不同batchsize的數據就行了
在這裏插入圖片描述
個人比較推薦第二種方法,因爲.ckpt方式保存模型,這種模型文件是依賴 TensorFlow 的,只能在其框架下使用。而 .pb文件裏面保存了圖結構+數據,加載模型時只需要這一個文件就好。它具有語言獨立性,可獨立運行,封閉的序列化格式,任何語言都可以解析它,它允許其他語言和深度學習框架讀取、繼續訓練和遷移 TensorFlow 的模型。另外的好處是保存爲 PB 文件時候,模型的變量都會變成固定的,導致模型的大小會大大減小。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章