在keras中使用Conv3d将多个图像输入到同一个CNN

2024-04-25 07:42:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用conv3d在同一个CNN结构中同时输入8个图像。我的CNN模型如下:

def build(sample, frame, height, width, channels,  classes):
    model = Sequential()
    inputShape = (sample, frame, height, width, channels)
    chanDim = -1

    if K.image_data_format() == "channels_first":
        inputShape = (sample, frame, channels, height, width)
        chanDim = 1


    model.add(Conv3D(32, (3, 3, 3), padding="same", input_shape=inputShape))
    model.add(Activation("relu"))
    model.add(BatchNormalization(axis=chanDim))
    model.add(MaxPooling3D(pool_size=(2, 2, 2), padding="same", data_format="channels_last"))
    model.add(Dropout(0.25))

    model.add(Conv3D(64, (3, 3, 3), padding="same"))
    model.add(Activation("relu"))
    model.add(BatchNormalization(axis=chanDim))
    model.add(MaxPooling3D(pool_size=(2, 2, 2), padding="same", data_format="channels_last"))
    model.add(Dropout(0.25))
    model.add(Flatten())
    model.add(Dense(128))    #(Dense(1024))
    model.add(Activation("relu"))
    model.add(BatchNormalization())
    model.add(Dropout(0.5))

    # softmax classifier
    model.add(Dense(classes))
    model.add(Activation("softmax")

模型培训如下:

^{pr2}$

我混淆了输入形状,我知道Conv3D需要5D输入,输入是4D,批添加来自keras,但我有以下错误:

ValueError: Error when checking input: expected conv3d_1_input to have 5 dimensions, but got array with shape (92, 60, 60, 3)

谁能帮帮我我能做什么?92的结果是什么,我用(57,8,60,60,3)确定输入形状。我的输入形状应该变成8个彩色图像同时输入到同一个模型中。在


Tags: sample模型addformatdatamodelwidthactivation
1条回答
网友
1楼 · 发布于 2024-04-25 07:42:16

Here是一个自定义imagedatagenerator,用于Conv3D nets的5D输入。希望有帮助。下面是一个如何使用它的示例:

from tweaked_ImageGenerator_v2 import ImageDataGenerator
datagen = ImageDataGenerator()
train_data=datagen.flow_from_directory('path/to/data', target_size=(x, y), batch_size=32, frames_per_step=4)

您可以构建自己的5D张量:

^{pr2}$

对于上面的代码段,文件夹结构必须如下所示:

    data/
        class0/
            img001.jpg
            img002.jpg
            ...
        class1/
            img001.jpg
            img002.jpg
            ...

相关问题 更多 >

    热门问题