1D-CNN, "ожидается, что conv1d_1_input будет иметь 3 измерения" - PullRequest
0 голосов
/ 09 марта 2020

Я реализовал модель 1D-CNN, которая упоминалась в этой статье , а при тестировании параметров моей модели Сводка модели

Это именно то, что упоминалось в бумага, но при использовании model_1D.fit выдает эту ошибку:

_________________________________________________________________
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-8-58726d6ca642> in <module>()
      1 model_1D.summary();
      2 #model_2D.summary();
----> 3 model_1D.fit(X_train1 , y_train1,epochs=100,validation_data=( X_valid1,y_valid1))
      4 #model_2D.fit(X_train2 , y_train2,epochs=100,validation_data=( X_valid2,y_valid2))

2 frames
/usr/local/lib/python3.6/dist-packages/keras/engine/training_utils.py in standardize_input_data(data, names, shapes, check_batch_axis, exception_prefix)
    129                         ': expected ' + names[i] + ' to have ' +
    130                         str(len(shape)) + ' dimensions, but got array '
--> 131                         'with shape ' + str(data_shape))
    132                 if not check_batch_axis:
    133                     data_shape = data_shape[1:]

ValueError: Error when checking input: expected conv1d_1_input to have 3 dimensions, but got array with shape (4723, 128000)

Вот код:

from keras import Model , Sequential
from keras.layers.core import Dense, Activation
from keras.layers import Conv2D, Conv1D, MaxPooling2D, Reshape, Concatenate, Dropout , MaxPooling1D, Flatten
from keras.layers import Dense, Input
from keras.optimizers import Adam
# ----------------------- 1D CNN ----------------------
model_1D = Sequential()
# 1
model_1D.add(Conv1D(32, kernel_size= 5 , strides=1, activation='relu', input_shape=(128000,7380))) # input shape after preprocessing
model_1D.add(MaxPooling1D(pool_size= 4, strides=4))
# 2 
model_1D.add(Conv1D(32, kernel_size= 5 , strides=1 , activation='relu'))
model_1D.add(MaxPooling1D(pool_size= 4, strides=4))
# 3
model_1D.add(Conv1D(64, kernel_size= 5 , strides=1 , activation='relu'))
model_1D.add(MaxPooling1D(pool_size= 4, strides=4))
# 4 
model_1D.add(Conv1D(64, kernel_size= 5 , strides=1 , activation='relu'))
model_1D.add(MaxPooling1D(pool_size= 2, strides=2))
# 5
model_1D.add(Conv1D(128, kernel_size= 5 , strides= 1 , activation='relu'))
model_1D.add(MaxPooling1D(pool_size= 2, strides= 2))
# 6
model_1D.add(Conv1D(128, kernel_size= 5 , strides= 1 , activation='relu'))
model_1D.add(MaxPooling1D(pool_size= 2, strides= 2))
model_1D.add(Flatten())
model_1D.add(Dense(7 , activation='relu')) # K
model_1D.add(Dense(6 , activation='softmax')) 
model_1D.summary()
model_1D.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model_1D.fit(X_train1 , y_train1,epochs=100,validation_data=( X_valid1,y_valid1))

Где ошибка и как я могу решить эту проблему?

X_train1D.shape ---> (7380, 128000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...