Tensorflow 这是否可以被视为过度装修?

Tensorflow 这是否可以被视为过度装修?,tensorflow,tf.keras,transfer-learning,Tensorflow,Tf.keras,Transfer Learning,我有4个班,每个班有1350张图片。验证集占总图像的20%(它是自动生成的)。培训模式使用MobilenetV2网络: base_model = tf.keras.applications.MobileNetV2(input_shape=IMG_SHAPE, include_top=False, weights='imagenet') 将创建以下模型: model = tf.keras.Sequential([ base_model, tf.keras.layers.Conv2D(3

我有4个班,每个班有1350张图片。验证集占总图像的20%(它是自动生成的)。培训模式使用MobilenetV2网络:

base_model = tf.keras.applications.MobileNetV2(input_shape=IMG_SHAPE, include_top=False, weights='imagenet') 
将创建以下模型:

model = tf.keras.Sequential([
  base_model,
  tf.keras.layers.Conv2D(32, 3, activation='relu', kernel_regularizer=regularizers.l2(0.001)),
  tf.keras.layers.Dropout(0.5),
  tf.keras.layers.MaxPool2D(),
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(4, activation='softmax', kernel_regularizer=regularizers.l2(0.001))
]) 
该模型经过20个阶段的训练,然后在15个阶段中进行微调。结果如下:


如果没有验证损失的数值,就有点难以判断,但我要说的是,微调前的结果稍微过拟合,而微调后的结果则不太过拟合。你还可以做一些额外的事情。一种是尝试使用回调tf.keras.callbacks.reducelRon函数使用可调整的学习速率。将其设置为监视验证丢失。文档是我设置的系数=0.5,耐心=1。其次,用tf.keras.layers.globalMapool2D替换展平层,看看它是否能改善验证损失。

在我添加tf.keras.layers.globalMapool2D后,值如下:
Epoch 20/2068/68[=========================================================]-26s 377ms/步-损失:0.1982-精度:0.9833-瓦卢损失:0.7288-瓦卢精度:0.7926
尝试在最终致密层之前添加keras.layers.BatchNormalization(轴=-1,动量=0.99,ε=0.001),看看这是否有帮助。我有以下信息:
历元20/2068/68[====================================================================================================================================================================================-26s 377ms/步-损耗:0.1422-精度:0.9817-瓦尔_损耗:1.0297-瓦尔_精度:0.7685