yuj*_*ao 10 python deep-learning pytorch
我从我的训练数据集中加载features和labels。它们最初都是 numpy 数组,但我使用torch.from _numpy(features.copy())和将它们更改为火炬张量torch.tensor(labels.astype(np.bool))。
而且我注意到,torch.autograd.Variable是一样的东西placeholder在tensorflow。
当我训练我的网络时,我首先尝试
features = features.cuda()
labels = labels.cuda()
outputs = Config.MODEL(features)
loss = Config.LOSS(outputs, labels)
Run Code Online (Sandbox Code Playgroud)
然后我试过了
features = features.cuda()
labels = labels.cuda()
input_var = Variable(features)
target_var = Variable(labels)
outputs = Config.MODEL(input_var)
loss = Config.LOSS(outputs, target_var)
Run Code Online (Sandbox Code Playgroud)
两个块都成功激活训练,但我担心可能会有细微差别。
Flo*_*ume 13
根据这个问题,您不再需要变量来使用 Pytorch Autograd。
Autograd 自动支持
requires_grad设置为True.
而且更重要的是
Variable(tensor)并且Variable(tensor, requires_grad)仍然按预期工作,但它们返回张量而不是变量。
这意味着,如果您的featuresandlabels已经是张量(它们似乎在您的示例中),您的Variable(features)andVariable(labels)只会再次返回张量。
Variables 的最初目的是能够使用自动微分(Source):
变量只是张量的包装器,因此您现在可以轻松地自动计算梯度。
| 归档时间: |
|
| 查看次数: |
13133 次 |
| 最近记录: |