AI-2预备知识
阅读原文时间:2023年08月20日阅读:1

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练习

创建包含更多行和列的原始数据集。

  1. 删除缺失值最多的列。

  2. 将预处理后的数据集转换为张量格式。

2.3线性代数

在python中,张量与标量的运算不会改变张量的形状,而是会将标量与张量的每一个元素都进行运算。

张量之间的运算:向量点积,矩阵-向量积,矩阵乘法

        书中特别强调了矩阵乘法和Hadamard积的区别(暂时未见过Hadamard积的应用)

2.3练习

  1. 证明一个矩阵A的转置的转置是A,即(A⊤)⊤=A。

  2. 给出两个矩阵A和B,证明“它们转置的和”等于“它们和的转置”,即A⊤+B⊤=(A+B)⊤。

  3. 给定任意方阵A,A+A⊤总是对称的吗?为什么?

  4. 本节中定义了形状(2,3,4)的张量Xlen(X)的输出结果是什么?

  5. 对于任意形状的张量X,len(X)是否总是对应于X特定轴的长度?这个轴是什么?

  6. 运行A/A.sum(axis=1),看看会发生什么。请分析一下原因?

  7. 考虑一个具有形状(2,3,4)的张量,在轴0、1、2上的求和输出是什么形状?

  8. linalg.norm函数提供3个或更多轴的张量,并观察其输出。对于任意形状的张量这个函数计算得到什么?