【发布时间】:2021-06-08 14:32:31
【问题描述】:
我正在使用 resnet 来训练我的数据。我已经冻结了大部分层,只对最后 4 层进行了训练。我想更改最后四层维度,使其与我的输入维度和通道匹配。因为我是新手,所以我不知道该怎么做。我尝试谷歌搜索但找不到解决方案
base_model = tf.keras.applications.ResNet50(
include_top=False,
weights="imagenet",
input_tensor=3,
input_shape=(150,150),
pooling=None,
)
for layer in base_model.layers[:46]:
layer.trainable = False
【问题讨论】:
-
你的意思是最后一层的维度应该和你的输入维度匹配??
-
我的意思是我的输入图像的维度与图像 resnet 的训练维度不同。而且我只使用最后几层。所以这些层的维度也不同还是我错了?。
-
您无需担心,只需加载预训练的权重,解冻最后四层,然后使用您的自定义输入训练/微调模型。
-
神经网络只能使用与训练时相同的输入大小,因此您必须在将图像作为输入输入神经网络进行预测之前对图像进行预处理。您可以使用
tf.keras.applications.resnet.preprocess_inputhere 对图像进行预处理,然后将其用作网络的输入。
标签: python tensorflow keras resnet