pytorch 处理多维特征的输入 12.1
课程:b站六二大人的pytorch实践课
-
数据集,每行叫一个sample (数据库里叫record
每一列叫fearture,数据库里叫字段
-
数据分为两部分,x和y
-
后缀.gz是linux下非常流行的压缩格式
-
b:偏置,叫bias
-
pytorch里的sigmoid函数是一个向量函数(两个张量之间的操作),所以括号里应该是向量
-
所以要把zi变换成向量的形式。如上图,把一组方程合并成矩阵运算,加上n份的b
-
为什么这么爱变成矩阵/向量?因为为了充分利用gpu并行计算的能力,提高运算速度。要是用for循环就不行,会相当慢
-
代码
nn是neural network的缩写哦
-
logistics回归,想要把神经网络的层数增加一点——
矩阵是空间变换的函数,在下例中,把x(N维空间)的向量映射到y(M维空间)
-
神经网络就是通过多个线性模型来模拟非线性的空间变换
-
utils
是一个常见的缩写,表示 “utilities”(实用工具)的意思。在编程领域中,utils
是一个常用的命名约定,用于指代一组通用的辅助函数、工具类或帮助函数集合。utils
库通常用于存放那些不属于特定功能模块或领域的、可重复使用的实用函数或工具。这些函数和工具可能在不同的项目或模块中都有用到,因此将它们集中放在一个utils
模块或包中,方便在需要的时候引用和使用。 -
不要只会读书,要有架构能力,会看文档
-
delimiter 分隔符
为什么32类型最常用?因为很多显卡只支持float32而不支持double
-
x_data=torch.from_numpy(xy[:,:-1])
这段代码是使用
torch.from_numpy()
函数将NumPy数组转换为PyTorch张量的操作。假设
xy
是一个二维的 NumPy 数组,具有 m 行和 n 列。那么xy[:,:-1]
使用切片操作选择了所有行和除最后一列之外的所有列。在切片操作中,冒号
:
用于指定范围。对于第一个冒号:
,它表示选择所有的行,即从第一行到最后一行。这相当于保留了xy
数组的所有行。对于第二个部分
:-1
,它表示选择除了最后一列之外的所有列。具体地说,冒号前面的-1
表示倒数第一个索引,即最后一列。通过使用负数索引,我们可以从最后一列开始向前选择列。因此,:-1
表示从第一列到倒数第二列(不包括最后一列)的范围。综合起来,
xy[:,:-1]
选择了xy
数组的所有行,并且选择了除了最后一列之外的所有列。这样就获得了一个新的二维数组,其中包含了xy
数组中除了最后一列之外的所有数据。举个例子,假设
xy
是一个 3 行 4 列的数组:xy = array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
那么
xy[:,:-1]
的结果将是:array([[ 1, 2, 3], [ 5, 6, 7], [ 9, 10, 11]])
它选择了所有行,并且选择了除了最后一列之外的所有列。
-
损失函数和优化器
随机梯度下降(Stochastic Gradient Descent,简称SGD)是一种常用的优化算法,用于训练机器学习和深度学习模型。它是梯度下降算法的一种变体,具有较低的计算成本和内存需求。
lr学习率,learning rate
-
前向、反向、更新
-
-
有很多激活函数,思路:都试试看哪个好。文档里有介绍
-
一条弹幕说的,rprop优化器+sigmoid激活,先放这,以后试试