准备
当然,首先需要有一个环境,以下的操作都基于
pytorch1.13,CUDA11.6,python3.9环境下进行
安装的内容等后续重新安装的话会再重新更新博客。
基本环节
1、准备数据:get_data函数,输入输出张量(数组)
2、创建学习参数:get_weight函数,提供以随机值初始化的张量,网络通过优化这些参数来解决问题
3、网络模型:simple_network函数,应用线性规则,为输入的数据生成输出,计算时先用权重*输入数据,再加上偏差。也就是一次函数:
y
=
w
x
+
b
y=wx+b
y=wx+b
4、损失:loss_fn函数,评估模型好坏
5、优化器:optimize函数,调整初始时候的随机权重,帮助模型更准确的计算目标值
Pytorch大致编码结构
x,y = get_data() # x:训练数据;y:目标变量
w,b = get_weight() # w:权重 ; b:偏差 都叫做学习参数
for i in range(500):
y_pred = simple_network(x) # 计算线性回归模型函数
loss = loss_fn(y,y.pred) # 计算y和y_pred的平方差的和
if i % 50 == 0: # 50次进行一次输出并调整参数
print(loss)
optimize(learning_rate) # 调整w,b;将损失最小化
了解一些机器学习术语
1、样本(sample)、输入(input)、数据点(data_point):这些都是指训练集中的实例。
2、预测(prediction)、输出(output):这些是由算法生成的值。
3、目标(target)、标签(label):图像实际标注的标签。
4、损失值(loss value)、预测误差(prediction error):预测值与实际值之间的差距。数值越小,准确率越高。
5、类别(classes):给定数据集的一组标签。
6、二分类(binary classification):把输入的实例归类为两个互斥的类别中的一类的分类任务。
7、多分类任务(multi-class classification):把输入的实例归类为两个以上的的类别的分类任务。
8、多标签分类(multi-label classification):一个输入的实例,可以用多个标签来标记。例如:图片中的对象检测,使用算法识别出图片中的不同对象。比如:多张图片分别有苹果,葡萄等标签。
9、标量回归(scalar regression):每个输入的数据点,都与一个标量质量(scalar quality)相关联,该标量质量是数值型的。例子:房价预测,股票价格预测。
10、向量回归(vector regression):算法需要预测不止一个标量质量。例子:当要识别图片中苹果的位置边框时,算法需要预测表示边框边缘的4个标量。
11、批(batch):在批的输入样本集上进行算法训练。批的大小一般在2~256之间,设定取决于GPU的内存大小。
12、轮数:整个数据集运行一遍称为一轮,一个epoch。