Python 向RESNET50添加层以构建连接CNN模型

Python 向RESNET50添加层以构建连接CNN模型,python,tensorflow,keras,deep-learning,resnet,Python,Tensorflow,Keras,Deep Learning,Resnet,这是我的代码,用于将resnet50模型与此模型(我想在我的数据集上进行训练)连接起来。我想冻结代码中resnet50模型的层(参见Trainable=false)。 在这里,我正在导入resnet 50模型 `` import tensorflow.keras import tensorflow as tf from tensorflow.keras.applications.resnet50 import ResNet50 from tensorflow.keras.preprocessi

这是我的代码,用于将resnet50模型与此模型(我想在我的数据集上进行训练)连接起来。我想冻结代码中resnet50模型的层(参见Trainable=false)。 在这里,我正在导入resnet 50模型

`` 
import tensorflow.keras
import tensorflow as tf
from tensorflow.keras.applications.resnet50 import ResNet50
from tensorflow.keras.preprocessing import image
from tensorflow.keras.applications.resnet50 import preprocess_input, decode_predictions
resnet50_imagnet_model = tensorflow.keras.applications.resnet.ResNet50(weights = "imagenet", 
                           include_top=False, 
                           input_shape = (150, 150, 3),
                           pooling='max')
  ``
在这里,我创建了我的模型

 ```
# freeze feature layers and rebuild model
for l in resnet50_imagnet_model.layers:
    l.trainable = False

#construction du model
model5 = [
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(128, activation='relu'),
    tf.keras.layers.Dense(12, activation='softmax')
]

#Jointure des deux modeles
model_using_pre_trained_resnet50 = tf.keras.Sequential(resnet50_imagnet_model.layers + model5 )
 ```
最后一行不起作用,我有以下错误: 层conv2\u block1\u 3\u conv的输入0与层不兼容:输入形状的轴-1的值应为64,但接收到的输入为形状[None,38,38,256

谢谢您的帮助。

您也可以使用keras',如下所示

    from tensorflow.keras.applications.resnet50 import ResNet50
    import tensorflow as tf

    resnet50_imagenet_model = ResNet50(include_top=False, weights='imagenet', input_shape=(150, 150, 3))

    #Flatten output layer of Resnet
    flattened = tf.keras.layers.Flatten()(resnet50_imagenet_model.output)

    #Fully connected layer 1
    fc1 = tf.keras.layers.Dense(128, activation='relu', name="AddedDense1")(flattened)

    #Fully connected layer, output layer
    fc2 = tf.keras.layers.Dense(12, activation='softmax', name="AddedDense2")(fc1)

    model = tf.keras.models.Model(inputs=resnet50_imagenet_model.input, outputs=fc2)

另请参阅。

这是正确的答案,因为ResNet不是一个顺序模型,它具有并行层,因此必须使用函数API实现。