【问题标题】:Negative dimension size caused by subtracting 6 from 1 for 'conv1d_2/convolution/Conv2D' (op: 'Conv2D') with input shapes: [?,1,1,5], [1,6,5,5]负维度大小由 1 减去 6 导致的 'conv1d_2/convolution/Conv2D' (op: 'Conv2D') 输入形状:[?,1,1,5], [1,6,5,5]
【发布时间】:2019-06-05 20:58:33
【问题描述】:

我正在尝试为输入格式为x[18324,6] 创建一个 CNN 模型 其中 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)

【问题讨论】:

    标签: keras


    【解决方案1】:

    错误源于第二个Conv1D,因为您的内核变得大于张量维度。要解决此问题,请使用padding='same' 或在第一个Conv1D 之后更改kernel_size=1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 2018-07-09
      • 1970-01-01
      • 2018-08-14
      • 1970-01-01
      • 2017-05-29
      相关资源
      最近更新 更多