2.1数据操作笔记
PyTorch和TensorFlow中的Tensor类型可做为张量使用,可支持GPU操作和自动微分。
广播机制:对不同形状的张量可使用广播机制进行运算。
为节省内存,可使用 X[:] = X + Y或X += Y来减少操作的内存开销。
2.1练习
1运行本节中的代码。将本节中的条件语句X==Y更改为 X < Y 或 X > Y,然后看看你可以得到什么样的张量。
2用其他形状(例如三维张量)替换广播机制中按元素操作的两个张量。结果是否与预期相同?
2.2数据预处理
csv类型文件,使用os包的读写操作。
pandas包的read_csv函数似乎也比较常用,可直接读入整个表格。
对于缺失值的处理,有两种方法,一是插值法:插入省缺值NaN , 二是删除法
2.2练习
创建包含更多行和列的原始数据集。
-
删除缺失值最多的列。
-
将预处理后的数据集转换为张量格式。
2.3线性代数
在python中,张量与标量的运算不会改变张量的形状,而是会将标量与张量的每一个元素都进行运算。
张量之间的运算:向量点积,矩阵-向量积,矩阵乘法
书中特别强调了矩阵乘法和Hadamard积的区别(暂时未见过Hadamard积的应用)
2.3练习
-
证明一个矩阵A的转置的转置是A,即(A⊤)⊤=A。
-
给出两个矩阵A和B,证明“它们转置的和”等于“它们和的转置”,即A⊤+B⊤=(A+B)⊤。
-
给定任意方阵A,A+A⊤总是对称的吗?为什么?
-
本节中定义了形状(2,3,4)的张量
X
。len(X)
的输出结果是什么? -
对于任意形状的张量
X
,len(X)
是否总是对应于X
特定轴的长度?这个轴是什么? -
运行
A/A.sum(axis=1)
,看看会发生什么。请分析一下原因? -
考虑一个具有形状(2,3,4)的张量,在轴0、1、2上的求和输出是什么形状?
-
为
linalg.norm
函数提供3个或更多轴的张量,并观察其输出。对于任意形状的张量这个函数计算得到什么?