为什么我的训练损失在训练最后一层AlexNet时会有预先训练的重量?

时间:2018-02-15 09:46:48

标签: python tensorflow machine-learning

我正在进行纹理分类,并且基于以前的工作,我试图修改AlexNET的最后一层有20个类,并且只为我的多类分类问题训练该层。 我在Ubuntu 16.04上的NVIDIA GTX 1080,Python3.6上使用Tensorflow-GPU。 我正在使用Gradient Descent Optimiser和Estimator类来构建它。我也使用两个dropout层进行正则化。因此,我的超参数是学习率,batch_size和weight_decay。我尝试使用50,100,200的batch_size,0.005和0.0005的weight_decays,以及1e-3,1e-4和1e-5的学习率。上述值的所有训练损失曲线都遵循类似的趋势。

我的训练损失曲线没有单调减少,反而似乎在振荡。我已经为学习率= 1e-5,权重衰减= 0.0005和batch_size = 200提供了张量板可视化。

请协助了解哪里出了问题以及如何纠正错误。 The Tensorboard Visualization for the case I specified

<mat-form-field>
    <input type="hidden" [matDatepicker]="myDate">
    <input  matInput  placeholder="My date" [(ngModel)]="myModel.MyDateString">
    <mat-datepicker-toggle matSuffix [for]="myDate"></mat-datepicker-toggle>
    <mat-datepicker #myDate  (selectedChanged)="updateDateToString($event)"></mat-datepicker>
  </mat-form-field>

1 个答案:

答案 0 :(得分:1)

您是在随机选择迷你批次吗?看起来你的迷你批次之间存在很大的差异,导致不同迭代时损失的高度变化。 我假设你的图中的x轴是迭代而不是时代,并且每次约160次迭代提供的训练数据更难以预测,这会导致损失曲线的周期性下降。您的验证损失如何表现?

可能的解决方案/想法:

  • 尝试以更好的方式随机化您的训练数据选择
  • 检查您的训练数据是否有错误标记的例子
相关问题