2017-01-10 3 views
1

내 Keras 모델은 Keras 저장소에 babi_rnn example입니다.Keras 모델/레이어의 출력을 얻으려면

데이터 세트의 모델 출력 (단어)을 가져오고 싶습니다.

내가 시도 :

layer = model.layers[-1] # For the last layer 
    f = K.function([model.get_input(train=False)], [layer.get_output(train=False)]) 
    print(f([x])[0]) # your activation tensor 

하지만 오류 얻을 :

AttributeError: 'Sequential' object has no attribute 'get_input' 

어떻게 단순히 입력에 의해 공급되는시 모델 또는 레이어의 출력을 얻을 수 있습니까? 실제로을하는 모델이 무엇인지 을보고하기위한 for x, y in zip(X,Y): print(x,y) :입니다

, 나는

# I supply the X list and want to get the Y list. 

    Y = Model(X) # X and Y are both lists. Model.Layer[Index] can also be a use case. 

    # The responses are the set of label probabilities for each word in the vocabulary. 

내가 할 수 있도록

이 필요합니다.

이것은 가장 단순한 사용 사례 여야한다고 생각하지만 구현하기 까다로운 것으로 보입니다.

도움을 주시면 감사하겠습니다. 감사.

답변

2

당신은 단순히 predict 기능은 내부적으로 당신이 뭘 하려는지 않는 _make_predict_function()를 호출 Y를 얻을 수 model.predict를 사용할 수 있습니다.

그러나 특정 유형의 입력을 특정 유형의 출력으로 매핑하는 교육을 받았으므로 ... predict 기능을 사용하는 동안 해당 유형을 처리하고 동일한 내용을 해석해야합니다. 이 예에서이 변환은 vectorize_stories()에서 수행되므로 무엇을하고 있는지 이해하십시오.

Y_pred = model.predict([tX, tXq]) 
for pred in Y_pred: 
    print (vocab[pred.argmax()-1]) 

참고 다시 tX는 벡터화 테스트 이야기 tXq는 벡터화 테스트 쿼리입니다 및 Y_pred는 벡터화가 예측 : 단어가이 모델을 훈련 후에 할 필요 예측 얻을이 경우

입니다 모델에 의한 대답.

+1

도움을 주셔서 감사합니다. 일반적으로 어떤 레이어의 출력을 얻는 방법을 설명 할 수 있습니까? 나는 시도했지만 질문에 오류가 발생했습니다. 감사. – Rafael

+1

어떤 레이어 든 'model.layers [index] .input''model.layers [index] .output'을 사용하여 레이어의 입출력을 얻을 수 있습니다. 또한 순차적 인 모델의 경우 전체 모델의 입력과 출력에'model.input'','model.output'을 사용할 수 있습니다. – indraforyou

관련 문제