Я столкнулся с ошибкой при выборе Input
, где Embedding
— мой первый слой. Он не может найти тензор формы (,9)
, хотя я ясно упомянул форму в Input()
. Может ли кто-нибудь помочь мне в этом?
Код выглядит следующим образом:
def model_3(src_vocab, tar_vocab, src_timesteps, tar_timesteps, n_units):
_nput = Input(shape=[src_timesteps], dtype='int32')
embedding = Embedding(input_dim = src_vocab, output_dim = n_units, input_length=src_timesteps, mask_zero=False)(_nput)
activations = LSTM(n_units, return_sequences=True)(embedding)
attention = Dense(1, activation='tanh')(activations)
attention = Flatten()(attention)
attention = Activation('softmax')(attention)
attention = RepeatVector(tar_timesteps)(attention)
activations = Permute([2,1])(activations)
sent_representation = dot([attention,activations], axes=-1)
sent_representation = LSTM(n_units, return_sequences=True)(sent_representation)
sent_representation = TimeDistributed(Dense(tar_vocab, activation='softmax'))(sent_representation)
model = Model(input=_nput,output=sent)
model.compile(optimizer='adam', loss='categorical_crossentropy')
print(model.summary())
plot_model(model, to_file='model.png', show_shapes=True)
model = Model(input=_nput,output=sent)
что такоеsent
этого нет в вашем коде? Если вы имели в видуsent_representation
, этот код не выдает никаких ошибок. Пожалуйста, опубликуйте полную трассировку ошибки. - person Vivek Mehta   schedule 20.12.2019shape=(src_timesteps,)
. Обратите внимание на запятую внутри кортежа. - person Aris F.   schedule 22.12.2019