Torch7:没有batchNorm或Dropout,但是model:training()和model:evaluate()产生不同的结果

时间:2017-06-24 10:53:02

标签: machine-learning torch

我培训了一个小型网络,基本上是torch.ParallelTable,有两个分支,如下图所示。

enter image description here

Net1 Net2 部分仅由标准nn.SpatialConvolutionnn.SpatialFullConvolutionnn.SpatialMaxPoolingnn.PRelu组成。没什么不寻常的。 SPP part是inn包中的inn.SpatialPyramidalPooling图层。 我没有使用任何批量标准化或droptout。我已经使用nn.MSECriterion作为丢失对网络进行了培训,错误的大小为10^{-11},因此它似乎过度拟合。但是,在evaluate()模式转发时,我收到大约0.5 ...

的错误
model:training()
res=model:forward(some_data)
loss=my_loss:forward(res,some_ground_truth)  -- about 10^{-11} 

但如果我改为评估模式,我会

model:evaluate()
res=model:forward(some_data)
loss=my_loss:forward(res,some_ground_truth)  -- about 0.5  

任何人都可以了解正在发生的事情吗?

0 个答案:

没有答案