0

私は画像に変換するPDF文書にいくつかの画像分類を行うことを検討しています。私はtensorflow inception v3 pre trained modelを使用しており、テンソルフローtutoに続いて自分のカテゴリで最後のレイヤーを再トレーニングしようとしています。私はカテゴリーごとに〜1000のトレーニング画像と4つのカテゴリーしか持っていません。私は悪くないですが、まだいくつかの作業が必要に成功した分類の90%にまで達することができる20万回の繰り返しで: enter image description hereTensorflowと開始による高精細画像のトレーニング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

詳細を教えてください。 開始モデルの畳み込みブロックを再利用するかどうかは、新しいサイズに適応するためにすべてを変更する必要がありますか? 「新しいサイズに関してブロックが完全に連結されている」とはどういう意味ですか? 私はKerasを見ましたが、テンソルフローよりも少し抽象性があるようですが、私の問題に役立つかどうかは分かりません – Pdv

+0

例を使って答えを修正しました。それが役に立てば幸い。 –

関連する問題