#deep-learning
#глубокое обучение
Вопрос:
У меня проблема с прогностическим анализом. Я должен выполнить простую классификацию, как мы делаем в машинном обучении. Я хочу, чтобы мой код не выравнивал слой. После удаления выравнивающего слоя с помощью Keras я получаю сообщение об ошибке, как указано ниже.
ValueError: Error when checking target: expected dense_8 to have 3 dimensions, but got array with shape (76322, 1)
Что я должен сделать для устранения этой ошибки?
from keras.layers.convolutional import Conv2D, MaxPooling2D
x_train = x_train.reshape(x_train.shape[0], x_train.shape[1], 1)
#y_train = y_train.reshape(y_train.shape[0], y_train.shape[1], 1)
seed(2017)
conv = Sequential()
conv.add(Conv1D(20, 4, input_shape =x_train.shape[1:3] , activation('relu'))
conv.add(MaxPooling1D(1))
#conv.add(Dropout(0.1))
#conv.add(Flatten())
conv.add(Dense(1, activation = 'sigmoid'))
sgd = Adam(lr = 0.001, beta_1=0.9,beta_2=0.7, decay = 0)
conv.compile(loss = 'binary_crossentropy', optimizer = sgd, metrics = ['accuracy'])
conv.fit(x_train, y_train, batch_size = 200, epochs = 100, verbose = 1)
Комментарии:
1. Вероятно, это из-за формы вашего
y_train
. Пожалуйста, укажите формы вашегоx_train
иy_train
2. Слой Flatten() фактически преобразует свои входные данные в массив размером 2. Поскольку вы ее не используете, последний плотный слой ожидает 3-мерный вывод. Вход последнего плотного слоя также представляет собой массив 3-х размеров.
3. x_train.shape=(76322, 446, 1) и y_train.shape=(76322,) @A
4. Почему бы вам не поместить здесь правильный код? В ошибке упоминается
dense_8
, я не вижу такого количества слоев в коде, который вы разместили здесь.