0

我正在尋找做一些圖像分類在PDF文檔,我轉換爲圖像。我正在使用張量流inception v3 pre trained model,並嘗試用tensorflow tuto跟我自己的類別重新訓練最後一層。我每個類別有大約1000個訓練圖像,只有4個類別。隨着20萬次迭代我可以達到90%的成功分類,這是不壞,但仍需要一些工作: enter image description here火車與Tensorflow和先啓V3高清圖像預培訓模型

這裏的問題是這樣的預先訓練的模型只需要300 * 300P圖像輸入。顯然,它會讓我在文檔中嘗試識別的特徵中包含的字符混亂很多。

是否有可能改變模型輸入層,這樣我可以給他更好的分辨率的圖像?

我會用自制的和更簡單的模型獲得更好的結果嗎?

如果是這樣,我應該從哪裏開始構建這樣的圖像分類模型?

回答

0

如果您想要使用與預先訓練的模型不同的圖像分辨率,則應僅使用卷積塊,並針對新尺寸使用一組完全連接的塊。使用像Keras這樣的更高級別的庫會使它更容易。以下是Keras中如何做到這一點的一個例子。

import keras 
from keras.layers import Flatten,Dense,GlobalAveragePooling2D 
from keras.models import Model 
from keras.applications.inception_v3 import InceptionV3 

base_model = InceptionV3(include_top=False,input_shape=(600,600,3),weights='imagenet') 
x = base_model.output 
x = GlobalAveragePooling2D()(x) 
x = Dense(1024,activation='relu')(x) 
#Add as many dense layers/Fully Connected layers required 
pred = Dense(10,activation='softmax')(x) 
model = Model(base_model.input,pred) 

for l in model.layers[:-3]: 
    l.trainable=False 

input_top = False只會給你卷積塊。您可以使用input_shape=(600,600,3)來設置所需的形狀。你可以在模型中添加一些密集塊/完全連接的塊/層。最後一層應該包含所需數量的類別.10代表類的數量。通過這種方法,你可以使用所有與卷積層相關的權重的預訓練模型,並只訓練最後的密集層。

+0

你願意詳細說明嗎? 我想如果我重新使用初始模型的卷積塊,我仍然不得不修改所有這些來適應我的新尺寸no? 你是什麼意思,「有一套完全連接的塊相對於新的尺寸」? 我看了一下Keras,它似乎提供了比tensorflow更抽象一些,但我不確定這會對我的問題有所幫助 – Pdv

+0

用一個示例修改了答案。希望能幫助到你。 –