在形状不兼容的张量上重新调用

时间:2020-01-16 09:18:36

标签: python tensorflow keras tensorflow2.0 tf.keras

我正在尝试通过以下代码在此处创建CNN +回归模型:

# Create the base model from the pre-trained model MobileNet V2
cnn_model = keras.applications.MobileNetV2(input_shape=IMG_SHAPE,
                                            include_top=False,
                                            weights='imagenet')

# The Regression Model
regression_model = keras.Sequential([
                        keras.layers.Dense(64, activation='relu', 
                                            input_shape=cnn_model.output_shape),
                        keras.layers.Dense(64, activation='relu')
                    ])

prediction_layer = tf.keras.layers.Dense(1)

# Final Model
model = keras.Sequential([
            cnn_model,
            regression_model,
            prediction_layer
        ])

现在的问题是,我收到以下警告:

警告:tensorflow:模型是用形状构造的 Tensor(“ dense_12_input:0”,shape =(None,None,7,7,1280), dtype = float32)用于输入(无,无,7、7、1280),但是 在形状不兼容的Tensor上重新调用(无,7、7、1280)。

有没有人知道为什么会出现此警告,以及如何与之抗衡,除非它是无害的。

1 个答案:

答案 0 :(得分:4)

在CNN解决了我的问题之后,似乎添加了一个拼合。由于我们想将展平的矢量传递给完全连接的层。该模型应如下所示:

model = keras.Sequential([
            cnn_model, keras.layers.Flatten(),
            regression_model,
            prediction_layer
        ])