Python Pytorch线性回归:常数损失
我正在研究Pytorch的线性回归问题(y=a*x,其中a的维数为2x2)。我编写了以下代码。我不知道为什么损失没有改变。。。有人能帮我吗 谢谢 托马斯Python Pytorch线性回归:常数损失,python,tensorflow,pytorch,linear-regression,loss,Python,Tensorflow,Pytorch,Linear Regression,Loss,我正在研究Pytorch的线性回归问题(y=a*x,其中a的维数为2x2)。我编写了以下代码。我不知道为什么损失没有改变。。。有人能帮我吗 谢谢 托马斯 import torch import numpy as np from scipy.integrate import odeint from matplotlib import pyplot as plt from torch.autograd import Variable 在我的笔记本电脑中,它工作了… 由于您只在10个纪元上运行它,并
import torch
import numpy as np
from scipy.integrate import odeint
from matplotlib import pyplot as plt
from torch.autograd import Variable
在我的笔记本电脑中,它工作了…
由于您只在
10个纪元上运行它,并且使用lr=0.0001
,因此您不会在10个纪元上看到它
我做了这个optimizer=torch.optim.SGD(我们的_model.parameters(),lr=0.01)
(增加的lr
),实际上在10个时期内减少了损失我正在用Pytorch处理一个线性回归问题,所以下次请不要添加不相关的标记,例如tensorflow
。
def EDP(X,t):
X_0=-2*X[0]
X_1=-2*X[1]
grad=np.array([X_0,X_1])
return grad
T=np.arange(0,10,0.1)
X_train=odeint(EDP,[10,20],T)
Y_train=np.zeros_like(X_train)
for i in range(Y_train.shape[0]):
Y_train[i,:]=np.dot(np.array([[2,0],[0,2]]),X_train[i,:])
print(X_train,Y_train)
X_train=torch.Tensor(X_train)
torch.transpose(X_train,0,1)
Y_train=torch.Tensor(Y_train)
print(X_train.shape)
import torch.nn as nn
class LinearRegression(torch.nn.Module):
def __init__(self):
super(LinearRegression, self).__init__()
self.linear = torch.nn.Linear(2,2,bias = False) # bias is default True
def forward(self, x):
y_pred = self.linear(x)
return y_pred
criterion = torch.nn.MSELoss()
optimizer = torch.optim.SGD(our_model.parameters(), lr = 0.0001)
our_model = LinearRegression()
x_train = X_train
y_train = Y_train
#x_train.requires_grad=True
print(x_train.shape)
print(y_train.shape)
ntrain=10
for t in range(ntrain):
y_pred=our_model(x_train)
loss=criterion(y_train,y_pred)
loss.backward()
optimizer.step()
optimizer.zero_grad()
print(t,loss)
print(our_model.linear.weight)