本节主要讲解如下几点:
- pytorch的基本使用
- 从零实现线性回归模型
– 模型
– 损失函数
– 优化函数(随机梯度下降) - 线性回归模型基于pytorch的简洁实现
- pytorch相关的几个问题
pytorch的基本使用
创建矢量
也可以叫沿用tensorflow的说法叫做张量
import torch
import time
# init variable a, b as 1000 dimension vector
n = 1000
a = torch.ones(n)
b = torch.ones(n)
print(a.shape)
print(b.shape)
torch.Size([1000])
torch.Size([1000])
矢量计算
直接
a = torch.ones(1000)
b = torch.ones(1000)
c = a + b
print(type(c))
print(c.shape)
print(c.size())
<class 'torch.Tensor'>
torch.Size([1000])
torch.Size([1000])
从零实现线性回归模型
线性回归模型的基本要素
线性回归
我们可以简要看作房屋的价格与面积和年限的线性关系,即价格会根据面积和年限的增大和减少线性变化,其中w和b是常值:
p r i c e = w a r e a ⋅ a r e a + w a g e ⋅ a g e + b \mathrm{price} = w_{\mathrm{area}} \cdot \mathrm{area} + w_{\mathrm{age}} \cdot \mathrm{age} + b price=warea⋅area+wage⋅age+b
先定义数据集,假定有两个特征:
num_inputs = 2 # 特征数量
num_examples = 1000 # 数据条数
# 生成 1000*2 的随机矢量代表1000条2个特征的数据集
X = torch.randn(num_examples, num_inputs, dtype