【问题标题】:Input 0 of layer sequential_43 is incompatible with the layer: : expected min_ndim=5, found ndim=4. Full shape received: (None, 32, 32, 100000)层sequential_43的输入0与层不兼容::预期min_ndim=5,发现ndim=4。收到的完整形状:(无、32、32、100000)
【发布时间】:2021-03-01 14:27:42
【问题描述】:

我的错误:

Input 0 of layer sequential_43 is incompatible with the layer: 
: expected min_ndim=5, found ndim=4. Full shape received: (None, 32, 32, 100000)

我输入的形状:

samples.shape(32,32,32,100000)

labels.shape(100000,)

我现在尝试运行的代码如下:

model = keras.models.Sequential()
layers = tf.keras.layers

model.add(layers.Conv3D(filters=5, kernel_size=(4,4,4), strides=2, activation='relu', input_shape=(8,32,32,32,1)))
model.add(layers.Conv3D(filters=5, kernel_size=(4,4,4), strides=1, activation='relu'))
model.add(layers.Conv3D(filters=5, kernel_size=(4,4,4), strides=1, activation='relu'))
model.add(layers.Conv3D(filters=5, kernel_size=(4,4,4), strides=1, activation='relu'))
model.add(layers.Conv3D(filters=5, kernel_size=(4,4,4), strides=2, activation='relu'))


model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(1, activation='relu'))

model.compile(optimizer=Adam(learning_rate=0.0001),loss='mape',metrics=['accuracy'])
model.fit(x=samples,y=labels,validation_split=0.1,epochs=1,shuffle=True,verbose=2)

我看到的每个地方的语法都是 (batchsize,dim1,dim2,dim3,dim4)。我将 batchsize 设置为 8,将数据设置为 32x32x32 立方体,并将颜色设置为 1 维。即使我从input_shape 中删除批量大小并将其添加到model.fit 作为batch_size=8 它也会给出相同的错误。有谁知道为什么?

【问题讨论】:

    标签: python tensorflow keras deep-learning conv-neural-network


    【解决方案1】:

    如您的问题所述,维度的顺序为(batchsize,dim1,dim2,dim3,dim4),因此您需要重塑您的samples 数组以匹配该顺序。

    您可以转置数组以将样本数作为第一个维度,并将其扩展以将通道维度(或颜色,如果我重复使用您的术语)设为 1。

    >>> samples.shape
    TensorShape([32, 32, 32, 100000])
    >>> samples = tf.expand_dims(tf.transpose(samples,[3,0,1,2]), axis=-1)
    >>> samples.shape
    TensorShape([100000, 32, 32, 32, 1])
    

    【讨论】:

    • 谢谢,它有效!给未来读者的提示; numpy 具有等效的功能,不会将这些推送到您的 GPU 并导致大数据结构崩溃。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 2022-12-10
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多