我还是新手,tensorflow
我正试图了解在我的模型训练进行时发生的细节。简而言之,我正在使用经过预训练的slim
模型对ImageNet
我finetuning
的数据集进行处理。以下是从 tensorboard 中提取的 2 个独立模型的一些图:
Model_1 (InceptionResnet_V2)
Model_2 (InceptionV4)
到目前为止,这两个模型在验证集上的结果都很差(平均 Az(ROC 曲线下的面积)= 0.7Model_1
和 0.79 Model_2
)。我对这些图的解释是,小批量的权重没有变化。只是小批量的偏差会发生变化,这可能是问题所在。但我不知道在哪里可以验证这一点。这是我能想到的唯一解释,但考虑到我仍然是新手,这可能是错误的。你能和我分享你的想法吗?如果需要,请毫不犹豫地要求更多地块。
编辑: 正如您在下面的图中看到的那样,权重似乎几乎没有随着时间的推移而变化。这适用于两个网络的所有其他权重。这使我认为某处存在问题,但不知道如何解释。
InceptionV4 weights
InceptionResnetV2 weights
EDIT2: 这些模型首先在 ImageNet 上训练,这些图是在我的数据集上微调它们的结果。我正在使用一个包含 19 个类的数据集,其中包含大约 800000 张图像。我正在做一个多标签分类问题,我使用 sigmoid_crossentropy 作为损失函数。班级高度不平衡。在下表中,我们显示了 2 个子集(训练、验证)中每个类的存在百分比:
Objects train validation
obj_1 3.9832 % 0.0000 %
obj_2 70.6678 % 33.3253 %
obj_3 89.9084 % 98.5371 %
obj_4 85.6781 % 81.4631 %
obj_5 92.7638 % 71.4327 %
obj_6 99.9690 % 100.0000 %
obj_7 90.5899 % 96.1605 %
obj_8 77.1223 % 91.8368 %
obj_9 94.6200 % 98.8323 %
obj_10 88.2051 % 95.0989 %
obj_11 3.8838 % 9.3670 %
obj_12 50.0131 % 24.8709 %
obj_13 0.0056 % 0.0000 %
obj_14 0.3237 % 0.0000 %
obj_15 61.3438 % 94.1573 %
obj_16 93.8729 % 98.1648 %
obj_17 93.8731 % 97.5094 %
obj_18 59.2404 % 70.1059 %
obj_19 8.5414 % 26.8762 %
超参数的值:
batch_size=32
weight_decay = 0.00004 #'The weight decay on the model weights.'
optimizer = rmsprop
rmsprop_momentum = 0.9
rmsprop_decay = 0.9 #'Decay term for RMSProp.'
learning_rate_decay_type = exponential #Specifies how the learning rate is decayed
learning_rate = 0.01 #Initial learning rate.
learning_rate_decay_factor = 0.94 #Learning rate decay factor
num_epochs_per_decay = 2.0 #'Number of epochs after which learning rate
关于层的稀疏性,以下是两个网络的层稀疏性的一些示例:
sparsity (InceptionResnet_V2)
sparsity (InceptionV4)
EDITED3:这是两个模型的损失图:
Losses and regularization loss (InceptionResnet_V2)
Losses and regularization loss (InceptionV4)