【发布时间】:2017-07-11 18:33:32
【问题描述】:
我正在使用带有尺寸 (224、224、3) 的输入图像的 keras 功能 API。我有以下使用功能 API 的模型,尽管顺序模型似乎出现了类似的问题:
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'])
我打电话给model.fit_generator 我的发电机有
yield ({'input_1': image}, {'output': classification})
image 是输入 (224, 224, 3) 图像,classification 在 {-1,1} 中。
在拟合模型时,我得到一个错误
ValueError: No data provided for "dense_1". Need data for each key in: ['dense_1']
一个奇怪的事情是,如果我将 dict 的 input_1 目标切换到 dense_1,错误会切换为缺少 input_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']
【问题讨论】:
标签: machine-learning neural-network keras