Keras 如何将mobilenet最后一层的输出馈送到Unet模型

Keras 如何将mobilenet最后一层的输出馈送到Unet模型,keras,computer-vision,image-segmentation,mobilenet,Keras,Computer Vision,Image Segmentation,Mobilenet,我正在尝试使用在imagenet数据集上预先训练的Keras mobilenet模型构建一个图像分割模型。如何进一步训练模型,我想将U-net层添加到现有模型中,并且只训练U-net体系结构的层,以mobilenet模型作为主干 问题:mobilenet模型的最后一层尺寸为7x7x1024,这是一个RelU层,我希望将其重新塑造为256x256x3,U-net输入层可以理解它。不是最后一层,但可以使用以下代码在mobilenet上创建unet: ALPHA = 1 # Width hyper p

我正在尝试使用在imagenet数据集上预先训练的Keras mobilenet模型构建一个图像分割模型。如何进一步训练模型,我想将U-net层添加到现有模型中,并且只训练U-net体系结构的层,以mobilenet模型作为主干


问题:mobilenet模型的最后一层尺寸为7x7x1024,这是一个RelU层,我希望将其重新塑造为256x256x3,U-net输入层可以理解它。

不是最后一层,但可以使用以下代码在mobilenet上创建unet:

ALPHA = 1 # Width hyper parameter for MobileNet (0.25, 0.5, 0.75, 1.0). Higher width means more accurate but slower

IMAGE_HEIGHT = 224
IMAGE_WIDTH = 224

HEIGHT_CELLS = 28
WIDTH_CELLS = 28

def create_model(trainable=True):
    model = MobileNet(input_shape=(IMAGE_HEIGHT, IMAGE_WIDTH, 3), include_top=False, alpha=ALPHA, weights="imagenet")

    block0 = model.get_layer("conv_pw_1_relu").output 
    block = model.get_layer("conv_pw_1_relu").output
    block1 = model.get_layer("conv_pw_3_relu").output
    block2 = model.get_layer("conv_pw_5_relu").output
    block3 = model.get_layer("conv_pw_11_relu").output
    block4 = model.get_layer("conv_pw_13_relu").output

    x = Concatenate()([UpSampling2D()(block4), block3])
    x = Concatenate()([UpSampling2D()(x), block2])
    x = Concatenate()([UpSampling2D()(x), block1])
    x = Concatenate()([UpSampling2D()(x), block])
 #   x = Concatenate()([UpSampling2D()(x), block0])
    x = UpSampling2D()(x)
    x = Conv2D(1, kernel_size=1, activation="sigmoid")(x)

    x = Reshape((IMAGE_HEIGHT, IMAGE_HEIGHT))(x)

    return Model(inputs=model.input, outputs=x)

不是最后一层,但可以使用以下代码在mobilenet上创建unet:

ALPHA = 1 # Width hyper parameter for MobileNet (0.25, 0.5, 0.75, 1.0). Higher width means more accurate but slower

IMAGE_HEIGHT = 224
IMAGE_WIDTH = 224

HEIGHT_CELLS = 28
WIDTH_CELLS = 28

def create_model(trainable=True):
    model = MobileNet(input_shape=(IMAGE_HEIGHT, IMAGE_WIDTH, 3), include_top=False, alpha=ALPHA, weights="imagenet")

    block0 = model.get_layer("conv_pw_1_relu").output 
    block = model.get_layer("conv_pw_1_relu").output
    block1 = model.get_layer("conv_pw_3_relu").output
    block2 = model.get_layer("conv_pw_5_relu").output
    block3 = model.get_layer("conv_pw_11_relu").output
    block4 = model.get_layer("conv_pw_13_relu").output

    x = Concatenate()([UpSampling2D()(block4), block3])
    x = Concatenate()([UpSampling2D()(x), block2])
    x = Concatenate()([UpSampling2D()(x), block1])
    x = Concatenate()([UpSampling2D()(x), block])
 #   x = Concatenate()([UpSampling2D()(x), block0])
    x = UpSampling2D()(x)
    x = Conv2D(1, kernel_size=1, activation="sigmoid")(x)

    x = Reshape((IMAGE_HEIGHT, IMAGE_HEIGHT))(x)

    return Model(inputs=model.input, outputs=x)

什么是mobilenet任务?如何调整?mobilenet的任务是什么?它是如何调整的?我在执行此操作时遇到OOM错误,对我有任何引用吗?抱歉,我必须重新启动并运行内核,错误再次消失谢谢。我在执行此操作时遇到OOM错误,对我有任何引用吗?抱歉,我必须重新启动并运行内核,错误再次消失谢谢。