错误的维数。 Keras
问题描述:
我有麻烦抓住形状输入到网络的第一层。这是我的架构:错误的维数。 Keras
# Model Hyperparameters
filter_sizes = [1, 2, 3, 4, 5]
num_filters = 10
dropout_prob = [0.5, 0.8]
hidden_dims = 50
model_input = Input(shape=(X.shape[0], X.shape[1]))
z = model_input
z = Dropout(0.5)(z)
# Convolutional block
conv_blocks = []
for fz in filter_sizes:
conv = Convolution1D(filters=num_filters,
kernel_size=fz,
padding="valid",
activation="relu",
strides=1)(z)
conv = MaxPooling1D(pool_size=2)(conv)
conv = Flatten()(conv)
conv_blocks.append(conv)
z = Concatenate()(conv_blocks) if len(conv_blocks) > 1 else conv_blocks[0]
z = Dropout(dropout_prob[1])(z)
z = Dense(hidden_dims, activation="relu")(z)
model_output = Dense(3, activation="softmax")(z)
model = Model(model_input, model_output)
model.fit(X[train], to_categorical(y[train], num_classes=3))
ValueError: Error when checking input: expected input_1 to have 3 dimensions, but got array with shape (12547, 261)
这是我的数据看起来像:
array([[ 1, 2, 3, ..., 0, 0, 0],
[ 5, 6, 7, ..., 0, 0, 0],
[15, 10, 4, ..., 0, 0, 0],
...,
[ 5, 6, 8, ..., 0, 0, 0],
[11, 10, 14, ..., 0, 0, 0],
[14, 8, 8, ..., 0, 0, 0]])
我有14640个样品261点的尺寸
答
由于错误说,这是一个整形的问题输入的形状(model_input)应与您在model.fit中输入的数据的输入形状匹配。fit
重新检查您的形状使用: from keras import backend as K
K.shape(input _tensor)
如果它是张量 或np.shape()
如果它是一个numpy数组。 此外,如果形状不匹配(以后也不会)使用功能 K.reshape 富勒更帮忙看看keras /后端API