镜像选择: TensorFlow 2.10.1,Horovod 已集成,Cuda 11.2, Python 3.8,Ubuntu 20.04
资源配置:b1.small(1*6GBgpu) 1*4核12GBcpu)
1.调试代码
python $GEMINI_RUN/DogsVsCats.py --num_epochs 5 --data_dir $GEMINI_DATA_IN1/DogsVsCats/ --train_dir $GEMINI_DATA_OUT
1.默认模型调优
epochs 5
训练精度: -
测试精度:0.874
epochs 10
训练精度: 0.93
测试精度: 0.91
epochs 9
训练精度: 0.914
测试精度: 0.905
默认模型精度基本在0.91附近
1.VGG16模型调优
修改模型架构至VGG16,使其在imgnet上的预训练权重上训练
base_model=VGG16(weights='imagenet', include_top=False, input_shape=(150, 150, 3))
model = Sequential()
model.add(base_model)
model.add(Flatten())
model.add(Dense(512, activation="relu"))
model.add(Dense(2, activation="softmax"))
for layer in base_model.layers:
layer.trainable = False
Dense 512 epochs 5
训练精度: 0.94
测试精度:0.92
Dense 1024 epochs 5
训练精度: 0.95
测试精度:0.905
Dense 1024 epochs 3
训练精度: 0.93
测试精度:0.91
Dense 256 epochs 5
训练精度: 0.95
测试精度:0.92
Dense 256 epochs 3
训练精度: 0.93
测试精度:0.918
可见稠密层变大会导致模型过拟合,512与256稠密层在该测试集下效果相当。基于VGG16迁移的模型精度在0.92左右