Размер отрицательного размера, вызванный вычитанием 6 из 1 для 'conv1d_2 / convolution / Conv2D' (op: 'Conv2D') с входными формами: [?, 1,1,5], [1,6,5,5] - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь сделать модель CNN для этого ввода для формы x[18324,6] где 18324 - количество входов, а 6 - размер входного вектора.
Но я получаю вышеуказанную ошибку с этим кодом:

indata = np.loadtxt("D:\\iit ropar intern\\alllog.txt.txt",dtype='float')
x = indata[:,0:6]
y = indata[:,6:11]

print(np.shape(x))
print(x.shape[0])

scaler = MinMaxScaler()
X_tr ain, X_test, y_train, y_test =sk.model_selection.train_test_split(x, y, test_size=0.10)

min_max_scaler = preprocessing.MinMaxScaler()
X_train = min_max_scaler.fit_transform(X_train)
X_test=min_max_scaler.fit_transform(X_test)

print(X_train.shape)

model = Sequential()
model.add(Conv1D(filters=5, kernel_size=6, activation='relu', input_shape=(X_train.shape[1],1)))
model.add(Conv1D(filters=5, kernel_size=6, activation='relu'))
model.add(Dropout(0.5))
model.add(MaxPooling1D(pool_size=2))
model.add(Flatten())
model.add(Dense(50, activation='relu'))
model.add(Dense(5, activation='linear'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics= 
['accuracy'])
#X_train = np.reshape(X_train, (X_train.shape[0],X_train.shape[1],1))
history=model.fit(X_train,y_train, epochs=50, 
batch_size=10,validation_split=0.1,verbose=1)

scores = model.evaluate(X_train,y_train)

1 Ответ

0 голосов
/ 05 июня 2019

Ошибка возникает на втором Conv1D, потому что ваше ядро ​​становится больше, чем тензорное измерение. Чтобы это исправить, используйте padding='same' или измените kernel_size=1 после первого Conv1D.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...