赞
踩
张量可以理解为numpy里面的矩阵,可以进行矩阵的操作
x_data = torch.tensor([[1,2],[2,3]])
首先建立一个单元,在pytorch里面,一个单元就是神经网络的一个节点,前向传播。
一般以一个类定义
- 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
-
- criterion = torch.nn.MSELoss(size_average = True)
- # 损失函数,均方根损失函数,接受两个参数,上面这个为True时求均值
- optimizer = torch.optim.SGD(model.parameters(), lr = 0.01)
- # 这是一个优化器,就是更新参数的,第一个参数就是你要更新哪些参数,第一个函数可以选择所有的参数,lr就是learn_rate学习率
-
- 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的值
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。