2017-02-21 4 views
1

치수 (224, 224, 3)의 입력 이미지가있는 keras 기능 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를 호출하고, : 비슷한 문제가 순차적 모델로 발생하는 것처럼 보이지만 나는, 기능 API를 사용하여 다음과 같은 모델을 가지고 224, 3) 이미지이고 classification은 {-1,1}입니다. 모델을 피팅에

, 나는 dense_1에 DICT의 input_1 대상을 전환하는 경우

가 가
ValueError: No data provided for "dense_1". Need data for each key in: ['dense_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'] 

답변

0

이것은 케라 출력이 어떻게 작동하는지 오해 한 것입니다. output 인수로 지정된 계층이 Model 인 경우 데이터의 출력이 필요합니다. 나는 데이터 딕셔너리의 output 키가 자동으로 output 인수로 지정된 레이어로 간다는 것을 오해했다.

+0

동일한 문제가 발생하지만 답변을 이해할 수 없습니다. 당신이 만든 수정 사항을 가르쳐 주시겠습니까? –

+1

@AntonioSesto 나는 그것을 말하기가 싫지만, 내 대답이 무엇을 의미하는지 완전히 확신하지 못합니다. 나는 자식과 슬랙 로그를 뒤돌아보고 너무 많이 찾을 수 없었다. 나는이 문제가 내가 'output''을 내가 생각할 수있는 키로 사용하고 있었지만 그 대신에 키는 출력물의 레이어 여야 만했다. 대신 키는''shared_layers''가 될 것이다. 그것이 가치가있는 것을 위해, 나는 또한이 경우 나의 특정한 모델과 관련된 문제 때문에 케라보다 tensorlayer로 tensorflow로 바뀌었다. – danielunderwood