【问题标题】:How can the variable computed in the previous epoch be used for computing the loss function in the next epoch?前一个 epoch 计算的变量如何用于计算下一个 epoch 的损失函数?
【发布时间】:2020-08-29 03:01:45
【问题描述】:

pytorch 代码如下。前一时期计算的变量如何用于 计算下一个epoch的损失函数?

for epoch in range((args.start_epoch+1), args.epochs):
  
    for input, target in train_loader:
        target = target.cuda()
        input = input.cuda()
        input_var = torch.autograd.Variable(input)
        target_var = torch.autograd.Variable(target)
        outputs, feature = model(input_var)

        if epoch > 0:
            l = criterion.forward(feature,target_var, Fea)

    Fea = function(model,train_loader)

【问题讨论】:

  • 请改进代码格式。
  • "如何将上一个epoch计算的变量用于计算下一个epoch的损失函数?"您可以将其存储到变量中。
  • 考虑将Fea设为全局。
  • 首先Fea是怎么排到l = criterion.forward(feature,target_var, Fea)这行的?你应该之前初始化过它。因此,面对这样的问题是没有意义的。
  • 非常感谢 afagarap 和 hafiz031。

标签: deep-learning pytorch loss


【解决方案1】:
for epoch in range((args.start_epoch+1), args.epochs):

Center=computer_Center(model,dataloader,classnum) 对于输入,train_loader 中的目标: 目标 = 目标.cuda() 输入 = 输入.cuda() input_var = torch.autograd.Variable(输入)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-03
    • 2020-10-17
    • 2021-04-05
    • 2019-01-01
    • 2015-09-03
    • 1970-01-01
    • 2020-03-27
    • 2021-11-28
    相关资源
    最近更新 更多