import torch
from torchvision import transforms #针对图像做原始处理的工具
from torchvision import datasets
from torch.utils.data import DataLoader #以上三行用于构建DataLoader
import torch.nn.functional as F #使用relu激活函数
import torch.optim as optim #使用优化器,用来简写
在回归问题和一些机器学习算法中,以及训练神经网络的过程中,通常需要对原始数据进行标准化和归一化
- 目的:通过标准化处理,得到均值为0,标准差为1的服从标准正态分布的数据(改变了正太分布数据的均值和方差(原始数据要是正态分布));归一化则是将数据转换到[0,1]之间
- 标准化计算过程由下式表示: x ′ = x − u σ x'=\frac{x-u}{\sigma} x′=σx−u
- 下面解释一下为什么需要使用这些数据预处理步骤。
在一些实际问题中,我们得到的样本数据都是多个维度的,即一个样本是用多个特征来表征的。比如在预测房价的问题中,影响房价的因素有房子面积、卧室数量等,我们得到的样本数据就是这样一些样本点,这里的、又被称为特征。很显然,这些特征的量纲和数值得量级都是不一样的,在预测房价时,如果直接使用原始的数据值,那么他们对房价的影响程度将是不一样的,而通过标准化处理,可以使得不同的特征具有相同的尺度(Scale)。这样,在使用梯度下降法学习参数的时候,不同特征对参数的影响程度就一样了。 - 简言之,