Получение ошибки формы при установке плотности на 10 - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть этот код, и он работает, пока плотные единицы установлены на maxlen, но когда я изменяю число плотных единиц на 10, или 100, и т. Д. На любое другое число, которое дает этот вывод, мне нужно создать простой плотный слойс помощью trainx, trainy, testx, testy и установите плотность на 10 и вычислите точность. Пожалуйста, если кто-то должен это исправить или у вас есть простой код для запуска плотных с единицами = 10

def W():
    model = Sequential()
    model.add(Embedding(len(word2index), 5, input_length=MAX_LENGTH))
    model.add(SpatialDropout1D(0.7))
    model.add(LSTM(64, dropout=0.7, recurrent_dropout=0.7))
    model.add(Dense(MAX_LENGTH, activation='softmax'))
    model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['acc'])
    print(model.summary())
    history = model.fit(train_sentences_X, train_tags_y, epochs=epochs, batch_size=batch_size, validation_split=0.2,
                        callbacks=[EarlyStopping(monitor='val_loss', patience=7, min_delta=0.0001)])

    print(history)

Но когда я установил плотность на 10:

    model.add(Dense(10, activation='softmax'))

, я получил эту ошибку:

Traceback (most recent call last):
Layer (type)                 Output Shape              Param #   
=================================================================
  File "/Users/aa/PycharmProjects/Keras/mmm.py", line 237, in <module>
embedding_1 (Embedding)      (None, 59, 5)             4475      
    W()
_________________________________________________________________
  File "/Users/aa/PycharmProjects/Keras/mmm.py", line 179, in W
spatial_dropout1d_1 (Spatial (None, 59, 5)             0         
    callbacks=[EarlyStopping(monitor='val_loss', patience=7, min_delta=0.0001)])
_________________________________________________________________
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/keras/engine/training.py", line 952, in fit
lstm_1 (LSTM)                (None, 64)                17920     
    batch_size=batch_size)
_________________________________________________________________
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/keras/engine/training.py", line 789, in _standardize_user_data
dense_1 (Dense)              (None, 10)                650       
    exception_prefix='target')
=================================================================
Total params: 23,045
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/keras/engine/training_utils.py", line 138, in standardize_input_data
Trainable params: 23,045
    str(data_shape))
Non-trainable params: 0
_________________________________________________________________
ValueError: Error when checking target: expected dense_1 to have shape (1,) but got array with shape (59,)
None

Process finished with exit code 1

...