2017-11-22 16 views
1
def Generate(): 
i = 0 

while 1: 
    i = i%int(Numb/batch_size) 
    my_input_batch = my_input[i*batch_size : (i+1)*batch_size] 
    my_output_batch = my_output[i*batch_size : (i+1)*batch_size] 
    encoder_input_data = np.array(np.zeros((batch_size, max_encoder_text_length, num_dictonary),dtype='float32')) 
    decoder_input_data = np.array(np.zeros((batch_size, max_decoder_text_length, num_dictonary),dtype='float32')) 
    decoder_target_data = np.array(np.zeros((batch_size, max_decoder_text_length, num_dictonary),dtype='float32')) 

    for i, (text_input, text_output) in enumerate(zip(my_input_batch, my_output_batch)): 
     for t, word in enumerate(my_input_batch): 
      encoder_input_data[i, t, word] = 1. 
     for t, word in enumerate(my_output_batch): 
      decoder_input_data[i, t, word] = 1. 
      if t > 0: 
       decoder_target_data[i, t - 1, word] = 1. 
    i = i + 1  
    yield ({encoder_input_data, decoder_input_data}, {decoder_target_data}) 

Kerac의 fit_generator()으로 모델을 트레이증하고 싶습니다. 그러나 기차를 타기 시작할 때 실수가 있습니다.케 라스 모델의 fit_generator()

File "test.py", line 146, in Generate yield ({encoder_input_data, decoder_input_data}, {decoder_target_data}) 
TypeError: unhashable type: 'numpy.ndarray' 

어떻게이 문제를 해결할 수 있습니까? 내가 뭘 잘못 했니?

답변

2

이 특정 문 {encoder_input_data, decoder_input_data}, {decoder_target_data}은 을 numpy 배열로 만듭니다. 그 작업은 불가능합니다.

하면 그것은 내 문제가 해결되지

yield ((encoder_input_data, decoder_input_data), (decoder_target_data))

+0

에 그 진술을 변경하려면 할 수 있습니다. –

+0

오류가 여전히 동일합니까? –