为什么将输入数据传输为变量类型?

时间:2020-10-22 09:09:04

标签: pytorch yolo

我正在阅读使用Pytorch实现YOLOv3的代码,并附带如下代码:

    for batch_i, (_, imgs, targets) in enumerate(dataloader):
            batches_done = len(dataloader) * epoch + batch_i
            imgs = Variable(imgs.to(device))  # ??
            targets = Variable(targets.to(device), requires_grad=False)

imgs是输入数据,我不明白为什么要退出转换:Variable(imgs.to(device)))
这是否意味着应该对输入数据进行训练(因为默认选项是require_grad = true),还是有其他原因?

2 个答案:

答案 0 :(得分:0)

正如Natthaphon在他的评论中指出的那样,在这种情况下,我真的看不到对Variable的调用是有意义的。

从技术上讲,变量自动成为计算图的一部分。因此,也许它是由从tensorflow过来的人编写的,或者是考虑到完整计算图的可视化。

答案 1 :(得分:0)

如果您阅读文档here

不推荐使用Variable API。 因此,我们不应再使用Variable来包装张量。 您可以继续使用最新的割炬版本的变量包装器。