cv -3-31

正交巻积,我自己的理解就算为了更好的train?因为,作者代码这个用到正交巻积的地方,就算这个train训练过程。然后没了,为了计算loss!

for i, (images, target) in enumerate(train_loader):
    # measure data loading time
    data_time.update(time.time() - end)

    if args.gpu is not None:
        images = images.cuda(args.gpu, non_blocking=True)
    target = target.cuda(args.gpu, non_blocking=True)

    # compute output
    output = model(images)
    #####
    diff = utils.orth_dist(model.module.layer2[0].downsample[0].weight) + utils.orth_dist(model.module.layer3[0].downsample[0].weight) + utils.orth_dist(model.module.layer4[0].downsample[0].weight)
    diff += utils.deconv_orth_dist(model.module.layer1[0].conv1.weight, stride=1) + utils.deconv_orth_dist(model.module.layer1[1].conv1.weight, stride=1)
    diff += utils.deconv_orth_dist(model.module.layer2[0].conv1.weight, stride=2) + utils.deconv_orth_dist(model.module.layer2[1].conv1.weight, stride=1)
    diff += utils.deconv_orth_dist(model.module.layer3[0].conv1.weight, stride=2) + utils.deconv_orth_dist(model.module.layer3[1].conv1.weight, stride=1)
    diff += utils.deconv_orth_dist(model.module.layer4[0].conv1.weight, stride=2) + utils.deconv_orth_dist(model.module.layer4[1].conv1.weight, stride=1)
    #####
    loss = criterion(output, target) + args.r * diff

parse_args()详解:

可以参考这篇文章的讲解:Python 讲堂 parse_args()详解_计算机视觉-Archer的博客-CSDN博客_parser.parse_args

训练和inference区别:

training主要是反向传播,修改(优化)权重
inference是模型训练好了,即权重计算好了,要通过模型,正向传播,根据权重计算y,也就是实际使用网络得到结果(有点类似于测试demo?)

而inference显然跟test是完全不同的,test过程其所跟train一样的,也是学习参数建立模型,只不过应用数据集不同。

更加形象的说法:参考深度学习的宏观框架——训练(training)和推理(inference)及其应用场景_Gaosiy的博客-CSDN博客_inference

验证集在深度学习中的作用:

我看了D3Dnet的代码,可以发现,train的过程中

parser.add_argument("--nEpochs", type=int, default=35, help="Number of epochs to train for")总共有35个epoch。然后它的具体的train的函数,也是循环这个epochs即循环35次epoch的迭代更新,可以发现这个train就算为了计算这个网络参数即权重。并且每个epoch完了之后,就验证过程走一下。所以这说明了,你train logs里面中途打印的loss啥的之类,都是验证集算的。

此外,这个D3Dnet是一个epoch迭代完成,保存一次模型权重。然后呢用验证集,并且一般验证集的batchsize是和train的batchsize是不同的。比如这里train的是64,而验证是8,通过计算然后来修正超参数(这就算验证集的作用)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值