我培训了一个小型网络,基本上是torch.ParallelTable
,有两个分支,如下图所示。
Net1 和 Net2 部分仅由标准nn.SpatialConvolution
,nn.SpatialFullConvolution
,nn.SpatialMaxPooling
和nn.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
任何人都可以了解正在发生的事情吗?