首页 > 解决方案 > 如何使用 NN 不断向张量添加值?

问题描述

我正在尝试教我的模型在张量中添加/减去一个值,直到那个tensor = 10

我的模型是:

import torch
import torch.nn as nn
import torch.optim as optim

class Model(nn.Module):
    def __init__(self):
        super(Model, self).__init__()
        self.fc1 = nn.Linear(2, 10)
        self.fc2 = nn.Linear(10, 1)

    def forward(self, x):
        x = torch.relu(self.fc1(x))
        x = self.fc2(x)
        return x

net = Model()

opt = optim.Adam(net.parameters())

网络的输入是:

features = torch.rand((10,2)) #10 inputs, each of 2D

我的目标:

x_goal = torch.tensor(10)

训练:

for epoch in range(1000):
    x = torch.tensor(0.0, requires_grad=True)

    for feature in features:
        x += net(feature)
        loss = torch.square(x_goal - x)
        loss.backward()

我正在努力解决的主要问题是就地操作错误:

RuntimeError: a leaf Variable that requires grad is being used in an in-place operation.

标签: pythonneural-networkpytorch

解决方案


推荐阅读