python - 如何使用 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.
解决方案
推荐阅读
- xquery - 如何基于集合获取计数并在 XQuery 中使用多个元素词查询?
- sqlite - SQLite IFNULL 在公式中不起作用
- c++ - c++ SDL2-ld||找不到-lmingw32|
- c++ - 为什么WinAPI控件大小改变后不调用WM_NCCALSIZE?
- java - Java Riak“操作正在进行时通道关闭”错误
- python - Python ImportError:没有名为“funds”的模块
- terraform - 在“s3”后端检查状态时出错:NoSuchBucket:指定的存储桶不存在
- git - “git fetch && git checkout”与“git checkout”有什么区别?
- javascript - 遍历数组时应该使用 for-of 还是 forEach?
- regex - 在两场比赛之间使用非捕获组?