一、线性回归
1. 导入依赖库
import numpy as np
import matplotlib.pyplot as plt
import torch
from torch import nn, optim
from torch.autograd import Variable
- numpy:用来构建数据
- matplotlib.pyplot: 将构建好的数据可视化
- torch.nn:包含了torch已经准备好的层,激活函数、全连接层等
- torch.optim:提供了神经网络的一系列优化算法,如 SGD、Adam 等
- torch.autograd:用来自动求导,计算梯度。其中Variable用来包装张量,使得张量能够支持自动求导,但在 PyTorch 0.4 及以后,已经被 Tensor 对象取代。
2. 构建数据
首先确定一个线性函数,例如y_data = 0.1 * x_data + 0.2。然后在这条直线上加一些噪点,最后看神经网络是否能抵抗这些干扰点,拟合出正确的线性函数。
只要做神经网络相关的数据处理,就一定要把数据转为张量(tensor)类型。然后想要实现梯度下降算法,就要把张量类型再转为Variable类型。
x_data = np.random.rand(100)
noise = np.random.normal(0, 0.01, x_data.shape) # 构建正态分布噪点
y_data = x_data * 0.1 + 0.2 + noise
x_data = x_data.reshape(-1, 1) # 把原始数据更改形状,自动匹配任意行,1列
y_data = y_data.reshape(-1, 1)
x_data =