Não é possível adicionar camada de incorporação a uma rede siamese usando keras

votos
0

Eu estou tentando alterar o código exemplo para uma rede siamese e adicionar uma camada de incorporação assim:

data_dim = 16
timesteps = 8
nb_classes = 10

encoder = Sequential()
encoder.add(Embedding(data_dim, 4, input_length=timesteps))
encoder.add(LSTM(32))

model = Graph()
model.add_input(name='input_a', input_shape=(timesteps,))
model.add_input(name='input_b', input_shape=(timesteps,))
model.add_shared_node(encoder, 
                      name='shared_encoder', 
                      inputs=['input_a', 'input_b'],
                      merge_mode='concat')
model.add_node(Dense(64, activation='relu'), name='fc1', input='shared_encoder')
model.add_node(Dense(3, activation='softmax'), name='output', input='fc1', 
               create_output=True)

model.compile(optimizer='adam', loss={'output': 'categorical_crossentropy'})

Que segue o último exemplo na sua documentação de muito perto.

Infelizmente eu continuo recebendo um erro:

TypeError: DataType float32 for attr 'Tindices' not in list of allowed values: int32, int64

Alguém pode ajudar?

Publicado 09/04/2016 em 23:11
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

model.add_input(name='input_a', input_shape=(timesteps,), dtype='int')
model.add_input(name='input_b', input_shape=(timesteps,), dtype='int')
Respondeu 11/04/2016 em 16:41
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more