我有DNA数据,我试图输入Keras,我有一个热编码它,每个DNA序列是4个通道(每种类型的核苷酸一个)。我按照了一些教程,但我似乎遇到了格式化问题。也许有人可以帮助我?这是我第一次尝试将自己的数据输入Keras。我的数据如下:
print(x_train.shape)
(1509, 4, 476)
print(y_train.shape)
(1509,)
我的模型(到目前为止)看起来像这样:
###Setup Keras to create a convolutional recurrent NN
# set parameters:
batch_size = 32
filters = (32, 1, 2) #(number of filters, rows per convolution kernel, columns per convolution kernel)
kernel_size = 16
x_shape = (1509, 1, 476, 4) #(samples, height, width, depth)
epochs = 3
#declare model
model = Sequential()
#CNN Input layer
model.add(Conv2D(filters,
kernel_size,
padding='same',
activation='relu',
strides=(1,0),
input_shape=x_shape))
print(model.output_shape)
但是我收到以下错误:
ValueError: Input 0 is incompatible with layer conv2d_0: expected ndim=4, found ndim=5
当我指定4个维度时,我不清楚模型为什么找到input_shape
参数的5个维度。我错过了什么?
答案 0 :(得分:2)
您不应在input_shape参数中包含样本数。这就是错误的含义。 批量大小维度是自动添加的。
此外,您应该重塑x_train表以匹配input_shape:
@each $label, $map in $header {
#{$label} {
color: map-get($map, color);
font-size: map-get($map, font-size);
}
}
这样我首先将数组转换成(1509,476,4)然后添加了一个维度:(1509,1,476,4)
我希望这会有所帮助