到目前为止,我们可以将数据集加载到张量中,并使用基本的数学运算来操纵这些张量。要开始构建复杂的模型,我们还需要一些线性代数工具。本节简要介绍了最基本的概念,从标量算术开始,一直到矩阵乘法。
2.3.1. 标量
大多数日常数学都是一次处理一个数字。正式地,我们称这些值为标量。例如,帕洛阿尔托的气温适中72华氏度。如果您想将温度转换为摄氏度,您可以计算表达式c=59(f−32), 环境f到 72. 在这个等式中,值5,9, 和 32是标量。变量c和f代表未知标量。
我们用普通的小写字母表示标量(例如,x, y, 和z) 和所有(连续)实值标量的空间 R. 为了方便起见,我们将跳过严格的空间定义。请记住这个表达式x∈R是一种正式的说法 x是一个实值标量。符号∈(发音为“in”)表示集合中的成员。例如, x,y∈{0,1}表示x和y是只能取值的变量0或者1.
标量被实现为仅包含一个元素的张量。下面,我们分配两个标量并执行熟悉的加法、乘法、除法和求幂运算。
(tensor(5.), tensor(6.), tensor(1.5000), tensor(9.))
(array(5.), array(6.), array(1.5), array(9.))
No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)
(Array(5., dtype=float32, weak_type=True),
Array(6., dtype=float32, weak_type=True),
Array(1.5, dtype=float32, weak_type=True),
Array(9., dtype=float32, weak_type=True))
2.3.2. 载体
出于我们的目的,您可以将向量视为固定长度的标量数组。与它们的代码对应物一样,我们将这些值称为 向量的元素(同义词包括条目和组件). 当向量表示现实世界数据集中的示例时,它们的值具有一定的现实意义。例如,如果我们正在训练一个模型来预测贷款违约的风险,我们可能会将每个申请人与一个向量相关联,该向量的分量对应于他们的收入、工作年限或以前的违约次数等数量。如果我们正在研究心脏病发作风险,每个向量可能代表一个患者,其组成部分可能对应于他们最近的生命体征、胆固醇水平、每天的运动分钟数等。我们用粗体小写字母表示向量,(例如,x, y, 和z).
向量实现为1st-阶张量。通常,此类张量可以具有任意长度,受内存限制。注意:在 Python 中,与大多数编程语言一样,向量索引从0,也称为从零开始的索引,而在线性代数中下标开始于1(基于一个的索引)。