私は次元(224,224,3)の入力画像を持つkeras機能APIを使用しています。同様の問題は、シーケンシャルモデルで発生しているようだが、私は、機能的なAPIを使用して、次のモデルがあります:Keras入力データがありません
input = Input(shape=(224, 224, 3,))
shared_layers = Dense(16)(input)
model = KerasModel(input=input, output=shared_layers)
model.compile(loss='binary_crossentropy', optimizer='sgd', metrics='accuracy'])
私は私の発電機が
yield ({'input_1': image}, {'output': classification})
image
が入力(224、でありmodel.fit_generator
を呼び出しています224、3)画像で、classification
は{-1,1}です。
モデルを当てはめるには、私はエラーを取得する
ValueError: No data provided for "dense_1". Need data for each key in: ['dense_1']
一つ奇妙なことは、私がdense_1
に辞書のinput_1
ターゲットを切り替えた場合、エラーがinput_1
の入力が欠落に切り替わりますが、戻って行くことです両方のキーがデータジェネレータにある場合は、dense_1
が不足しています。
これは私がfit_generator
を呼び出すか、ジェネレータからバッチを取得してtrain_on_batch
を呼び出しても発生します。
何が起こっているのか知っていますか?私が知ることから、これはthe documentationと同じでなければなりませんが、入力サイズは異なります。
Full traceback:
Traceback (most recent call last):
File "pymask.py", line 303, in <module>
main(sys.argv)
File "pymask.py", line 285, in main
keras.callbacks.ProgbarLogger()
File "/home/danielunderwood/virtualenvs/keras/lib/python3.6/site-packages/keras/engine/training.py", line 1557, in fit_generator
class_weight=class_weight)
File "/home/danielunderwood/virtualenvs/keras/lib/python3.6/site-packages/keras/engine/training.py", line 1314, in train_on_batch
check_batch_axis=True)
File "/home/danielunderwood/virtualenvs/keras/lib/python3.6/site-packages/keras/engine/training.py", line 1029, in _standardize_user_data
exception_prefix='model input')
File "/home/danielunderwood/virtualenvs/keras/lib/python3.6/site-packages/keras/engine/training.py", line 52, in standardize_input_data
str(names))
ValueError: No data provided for "input_1". Need data for each key in: ['input_1']
私は同じ問題を抱えていますが、あなたの答えを理解できませんでした。あなたが行った変更を私に指摘してもらえますか? –
@AntonioSesto私はそれを言いたくはありませんが、私の答えが意味するものについては完全にはわかりません。私はgitとスラックログを見て、あまり見つけられませんでした。私は、私がそこにいると思っていたキーとして '' output''を使っていたのですが、代わりに '' shared_layers''というキーを持つ出力のレイヤーでなければなりませんでした。それが価値あるものであれば、私はこのケースで私の特定のモデルの問題のためにテラス層でテラス層に切り替えることになった。 – danielunderwood