code:
import torch
import numpy as np
x_data=[1.0,2.0,3.0]
y_data=[2.0,4.0,6.0]
w=torch.Tensor([1.0,2.0])
b=torch.Tensor([0.0])
w.requires_grad=True
def forward(x):
val = torch.Tensor([x**2,x])
return (val @ w.T) +b #error
def loss(x,y):
y_pred=forward(x)
return (y_pred-y)**2
print("predict (before training)",4,forward(4).item)
for epoch in range(100):
for x,y in zip(x_data,y_data):
l=loss(x,y)
l.backward()
print('\tgrad:',x,y,w.grad.item())
w.data=w.data-0.01*w.grad.data
w.grad.data.zero_()
print("progress:",epoch,l.item())
print("predict(after training)",4,forward(4.0).item)
error:
ValueError: only one element tensors can be converted to Python scalars
Pytorch, Matrix multiplication of tensors always reports an error, where a tensor contains the variable,why and how to fix it? I am very sorry my English is not very good