発生している問題・エラーメッセージ
初めて質問するので、至らない部分があれば教えてください。 keras.applications内のXceptionを使用して、ある画像を予測したところbatch_sizeによって値が変わりました。 batch_sizeによらずに予測結果を得るにはどうすればいいでしょうか。 何か設定が必要なのでしょうか。 すみませんが,どなたかご教授頂けると幸いです。 よろしくお願いします。
追記
tiitoiさんのおかげで出力層では同じ結果になることが分かりました。
ただ、Metric Learningで異常検知を使用としているので欲しい値はXceptionの中間層の値です。
言葉足らずで申し訳ありません。
batch_sizeによらずにXceptionの中間層の値を得るにはどうすればいいでしょうか。
該当のソースコード
python
1import numpy as np 2from keras.models import Model 3from keras.applications import Xception 4 5image_data = 画像データ 6image_data = np.asarray(image_data) 7image_data = image_data.astype('float32') / 255.0 8 9for i in range(100): 10 # Xceptionモデル構築 11 base_model = Xception(include_top=True, weights='imagenet', input_shape=(299, 299, 3)) 12 model = Model(inputs=base_model.input, outputs=base_model.layers[i+2].output) 13 14 p1 = model.predict(image_data, batch_size=1) 15 p32 = model.predict(image_data, batch_size=32) 16 17 judge = (p1 == p32).all() 18 print(str(i) + ' : ' + str(judge)) 19 model.summary() 20 print() 21 22 if not judge: 23 break
試したこと
上記のコードを試したところ、block1_conv2の部分で差異が生じているようでした。
補足情報(FW/ツールのバージョンなど)
環境は次のとおりです。
Ubuntu 18.04.3 LTS
Python 3.6.8
Keras 2.3.1
tensorflow-gpu 2.0.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/05 05:43
2019/12/05 06:02
2019/12/05 06:18
2019/12/05 06:51 編集
2019/12/05 07:11
2019/12/05 07:22
2019/12/05 07:35