Ошибка значения: размерность 0 в обеих фигурах должна быть равной, но равна 10 и 1. Фигуры [10] и [1]

#tensorflow #lstm

#tensorflow #lstm

Вопрос:

Я создаю сеть LSTM. у меня есть последовательный массив ввода формы (1400,17640), массив масок (1400,17640) и y (целевой массив) формы (1400,), хотя цель имеет 10 разных значений класса. (1-10). Итак, я определил свой выходной плотный слой с 10 единицами измерения и потерями как разреженную категориальную кроссэнтропию. Сетевой код LSTM:-

 pad_seq = np.random.rand(17640,1)

def create_model():

#input 1 (pad sequence)
input_layer1 = Input(shape=(17640,1),name = 'input_layer',dtype='float32')

#input 2 (mask)
input_layer2 = Input(shape=(17640,),name='input_mask',dtype='bool')

#LSTM layer
LSTM_layer = LSTM(25,return_sequences=False,name = 'LSTM_layer')(input_layer1,mask = input_layer2)

#Dense layer
dense = Dense(50,activation='relu',kernel_initializer=he_normal(),kernel_regularizer=l2(0.0001),name = 'dense')(LSTM_layer)

#output layer
dense_1 = Dense(10, activation = 'softmax',name='dense_1')(dense)

#concat = concatenate([input_layer,input_mask])

model = Model([input_layer1, input_layer2],dense_1)

#compile
model.compile(loss='SparseCategoricalCrossentropy', optimizer=keras.optimizers.Adam(lr=0.001,decay = 1e-4),metrics=[tfa.metrics.F1Score(num_classes = 10)])

return model
  

Но при подгонке модели я получаю ошибку значения:

 ValueError: Dimension 0 in both shapes must be equal, but are 10 and 1. Shapes are [10] and [1]. for '{{node AssignAddVariableOp_5}} = AssignAddVariableOp[dtype=DT_FLOAT](AssignAddVariableOp_5/resource, Cast_6)' with input shapes: [], [1].
  

Какие две входные формы сравниваются друг с другом, которые должны совпадать, чтобы соответствовать модели

Комментарии:

1. Пожалуйста, предоставьте фиктивный ввод, np.random.rand(17640, 1) чтобы мы могли скопировать вставить ваш код и воспроизвести ошибку.

2. @NicolasGervais Я отредактировал код.