张量
张量可以理解为numpy里面的矩阵,可以进行矩阵的操作
张量初始化
python
x_data = torch.tensor([[1,2],[2,3]])
模型的建立
首先建立一个单元,在pytorch里面,一个单元就是神经网络的一个节点,前向传播。
一般以一个类定义
python
class LearnModel(torch.nn.Module):
def __init__(self):
super(LinearModel,self).__init__()# 必须要有
self.linear = torch.nn.Linear(1,1)# 接受两个参数一个是输入数据的维度,一个是输出数据的维度,这个函数就是求出参数w和b再顺便做好相乘加b
def forward(self,x):
y_pred = self.linear(x)# 前向传播
return y_pred
损失函数和参数更新
python
criterion = torch.nn.MSELoss(size_average = True)
# 损失函数,均方根损失函数,接受两个参数,上面这个为True时求均值
optimizer = torch.optim.SGD(model.parameters(), lr = 0.01)
# 这是一个优化器,就是更新参数的,第一个参数就是你要更新哪些参数,第一个函数可以选择所有的参数,lr就是learn_rate学习率
线性回归
python
model = LinearModel()
for epoch in range(100):
y_pred = model(x_data) # 前向传播获得y的预测值
loss = criterion(y_pred, y_data) # 求出代价
optimizer.zero_grad() # 清零梯度
loss.backward() # 自动计算梯度
optimizer.step() # 更新w和b的值