数学基础 标量 Scalar 一个标量就是一个单独的数 向量 Vector 一个向量是一列数 可以把向量看做空间中的点,每个元素是不同坐标轴上的坐标 向量中有几个数就叫几维向量 如4维向量:[1, 2,...= B*A 左矩阵行乘以右矩阵列,对位相乘再求和 矩阵转置(transpose),即行列互换 张量 tensor 将3个2×2矩阵排列在一起,就称为3×2×2的张量 张量是神经网络的训练中最为常见的数据形式...as np import torch # 构造一个2行3列的矩阵 x = np.array([[1,2,3], [4,5,6]]) # 查看维度 print(x.ndim) # 形状 print(x.shape...) # 元素总数 print(x.size) # 元素和 print(np.sum(x)) # 对列求和 print(np.sum(x, axis=0)) # 对行求和 print(np.sum(x,...转换成2列,-1表示自动推断出行数 print(x.view(-1,2)) 部分输出: 再看一个张量操作的例子 导数
下表是einsum函数的三个例子: einsum(‘ij -> ji’, Mat) 对矩阵Mat求转置并返回 einsum(‘ij -> i’, Mat) 对矩阵Mat每行求和并返回 einsum(‘ij...-> j’, Mat) 对矩阵Mat每列求和并返回 (二)np.add.at() input: [ndarray], [ndarray or list], [ndarray]; return: 的是一个向量,则返回只含有长度一个值的元组。如果输入的是一个矩阵,则返回行数和列数构成的元组。如果输入的是张量,则返回行数,列数和层数构成的元组。...如果输入的是一个张量,则返回三个数构成的元组,第一个数是每一层占用的内存大小,第二个数是每一层中,每一行占用的内存大小,第三个数是每一个数占用的内存大小。...如果是行向量加列向量,系统会将行向量的列数临时扩充为列向量的行数,还会将列向量的行数临时扩充为行向量的列数,例子如下: a = np.array([1, 1]) b = np.array([[1], [
该方法将一维时间序列数据转换为二维张量,作者基于时序数据的多周期性特点,将数据分解为多个周期内变化和周期间变化,并将这些变化分别嵌入到二维张量的列和行中。...前者表示一个周期内的短期时间模式,而后者可以反映连续不同周期的长期趋势。 作者基于多个周期将原始的一维时间序列转换为一组二维张量,从而统一了周期内变化和周期间变化。...这些选择的频率也对应于k个周期长度{p1, ..., pk}。上述过程总结如下: 接下来如图以及以下公式所示,我们可以基于选定的周期对原始一维时序数据重塑为多个二维张量。...Padding(·) 是沿着时间维度用零来扩展时间序列,以使其与 Reshape_{p_i, f_i}(·) 兼容,其中 p_i 和 f_i 分别表示转换后的二维张量的行数和列数。...融合k个不同的一维表示{X_1, ..., X_k}以供下一层使用。受到自相关(Auto-Correlation)思想的启发,基于幅度来加权求和聚合这些一维表示。
temp3是不同的,因为seed仅作用于最接近的那句随机数产生语句。...,结构操作就是改变张量本身的结构,数学操作就是对张量的元素值进行数学运算。...、张量元素乘积、对张量求均值、方差和极值。...向量的点乘 向量的待你橙又称为向量的内积或数量积,对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作。...一般矩阵乘积是矩阵相乘最重要的方法,它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义。
对于只有一个轴的张量,形状只有一个元素。 x.shape 请注意,维度(dimension)这个词在不同上下文时往往会有不同的含义,这经常会使人感到困惑。...例如,我们矩阵中的行可能对应于不同的房屋(数据样本),而列可能对应于不同的属性。曾经使用过电子表格软件或已阅读过【深度学习基础】预备知识 | 数据预处理 的人,应该对此很熟悉。...A.shape, A.sum() 默认情况下,调用求和函数会沿所有的轴降低张量的维度,使它变为一个标量。我们还可以指定张量沿哪一个轴来通过求和降低维度。...A_sum_axis1 = A.sum(axis=1) A_sum_axis1, A_sum_axis1.shape 沿着行和列对矩阵求和,等价于对矩阵的所有元素进行求和。...标量、向量、矩阵和张量分别具有零、一、二和任意数量的轴。 一个张量可以通过sum和mean沿指定的轴降低维度。 两个矩阵的按元素乘法被称为他们的哈达玛积。它与矩阵乘法不同。
但到了一定程度后,当你希望更好地理解不同机器学习算法运作原理时,线性代数就很有用了,它可以帮助你在开发机器学习系统时更好地做决策。...淡黄色图中有一个矩阵的例子:一个 2×3 的矩阵 (行数×列数)。下图中是另一个矩阵和对应的表示形式。 张量 三维张量是按照一定规律排列在方格中的数组,其中一个变量数字表示轴。...张量有三个索引,其中第一个索引表示行,第二个索引表示列,第三个索引表示轴。例如,V_232 指向第二行、第三列、第二轴的元素,在下图右边的张量中表示 5。...矩阵和向量的运算 对一个矩阵乘以一个向量,可以理解为对矩阵的每一行乘以向量的每一列,运算结果会是一个向量,它的行数和矩阵的行数一样。下图展示了这是如何计算的。...注意,只有当第一个矩阵的列数和第二个矩阵的行数相等时,才能把它们两个乘起来。运算结果会是一个矩阵,行数和第一个矩阵的行数相等,列数和第二个矩阵的列数相等。
但到了一定程度后,当你希望更好地理解不同机器学习算法运作原理时,线性代数就很有用了,它可以帮助你在开发机器学习系统时更好地做决策。...淡黄色图中有一个矩阵的例子:一个 2×3 的矩阵 (行数×列数)。下图中是另一个矩阵和对应的表示形式。 ? 张量 三维张量是按照一定规律排列在方格中的数组,其中一个变量数字表示轴。...张量有三个索引,其中第一个索引表示行,第二个索引表示列,第三个索引表示轴。例如,V_232 指向第二行、第三列、第二轴的元素,在下图右边的张量中表示 5。 ?...对一个矩阵乘以一个向量,可以理解为对矩阵的每一行乘以向量的每一列,运算结果会是一个向量,它的行数和矩阵的行数一样。下图展示了这是如何计算的。...运算结果会是一个矩阵,行数和第一个矩阵的行数相等,列数和第二个矩阵的列数相等。计算方法如下: 你只需要将第二个矩阵分成列向量,然后分别将第一个矩阵和每个列向量相乘。
从上一篇文章的介绍中可以看到,在 CNN 中卷积直接计算的定义中,卷积核在输入图片上滑动,对应位置的元素相乘后相加求和,滑窗的大小由卷积核决定。...Im2Col+Matmul 方法主要包括两个步骤: 使用 Im2Col 将输入矩阵展开一个大矩阵,矩阵每一列表示卷积核需要的一个输入数据,按行向量方式存储。 2....将输入数据按照卷积窗进行展开并存储在矩阵的列中,多个输入通道的对应的窗展开之后将拼接成最终输出 Matrix 的一列。...Input 重排 对 Input 进行重排,得到的矩阵见下图右侧,矩阵的行数对应输出 OH*OW 个数,也就是卷积核在 Input 上的滑动次数;每个行向量里,先排列计算一个输出点所需要输入上第一个通道的...; 对于准备好的两个二维矩阵,将 (KH*KW*IC) 作为累加求和的维度,运行矩阵乘可以得到输出矩阵 (OH*OW)×(OC) ; 将输出矩阵 (OH*OW)×(OC) 在内存布局视角即为预期的输出张量
除了形状改变之外,X中的元素保持不变。 1.6 创建张量: 1.6.1 创建各元素为0的张量 nd.zeros() ● 示例: 我们创建⼀个各元素为0,形状为(2, 3, 4)的张量。...2.8 对NDArray中所有元素求和得到一个只有一个元素的NDArray。...广播机制 3.1 概念 当对两个形状不同的NDArray按元素运算时,可能会触发⼴播(broadcasting)机制:先适当复制元素使这两个NDArray形状相同后再按元素运算。...4.4 截取部分元素,并为其重新赋值 ● 示例: 例⼦中,我们为⾏索引为1的每⼀列元素重新赋值。 5....运算的内存开销 5.1 id()函数 如果两个实例的ID一致,那么它们所对应的内存地址相同,反之则不同。
我们通常拥有由数千栋房屋组成的数据集,每栋房屋都称为一个数据点。此时,我们要做的就是将房屋的向量堆叠起来,形成一个矩阵。每行代表一所房子,每列代表一个解释变量。...我们有 n 个房屋/示例,因此从逻辑上讲,我们应该将设计矩阵中的每一行与列向量 W 相乘。为简洁起见,我们将考虑一个包含两个示例和三个解释变量的简单示例: 矩阵和列向量相乘将产生另一个列向量。...不要忘记矩阵相乘,第一个矩阵的列数应该与第二个矩阵的行数相同。...PyTorch 是众所周知的深度学习库,张量(Tensor)起着至关重要的作用。您可以将张量视为更高维的矩阵,而 PyTorch 允许我们高效地对它们执行数值运算。...为了表示隐藏层中的四个神经元,我们将我们的设计矩阵与一个四列三行的权重矩阵相乘;行数应等于输入的维数,列数应等于后续层中目标神经元的数量。 剩下的就是最终的输出层。
也就是说,对于隐藏层的第j行第k列的神经元,它的输出为: 其中σ是激活函数,b是共享偏置,Wl,m是共享权重的5×5数组,用ax,y表示输入层的第x行第y列的神经元的输出值,即隐层的第j行第...k列的神经元的若干个输入。...2,CNN反向传播的不同之处: 首先要注意的是,一般神经网络中每一层输入输出a,z都只是一个向量,而CNN中的a,z是一个三维张量,即由若干个输入的子矩阵组成。其次: 池化层没有激活函数。...池化层在前向传播的时候,对输入进行了压缩,那么我们向前反向推导上一层的误差时,需要做upsample处理。...卷积层是通过张量卷积,或者说若干个矩阵卷积求和而得到当前层的输出,这和一般的网络直接进行矩阵乘法得到当前层的输出不同。这样在卷积层反向传播的时候,上一层误差的递推计算方法肯定有所不同。
张量(Tensor) 张量是一组数字,排列在一个规则的网格上,具有不同数量的轴。 张量有三个指标,第一个指向行,第二个指向列,第三个指向轴。 例如,V232指向第二行,第三列和第二个轴。...▌计算规则(Computational Rules) ---- ---- 1.矩阵标量运算(Matrix-Scalar Operations) 如果在矩阵基础上乘除或者加一个变量,就代表对矩阵的每一个元素进行数学运算...下图显示了的乘法例子: ? 2.矩阵向量乘法(Matrix-Vector Multiplication) 将矩阵与矢量相乘可以被认为是将矩阵的每一行与矢量的列相乘。...请注意,如果第一个矩阵列的数量与第二个矩阵行的数量匹配,两个矩阵才能做乘法运算。 结果将是一个与第一个矩阵相同行数和与第二个矩阵相同列数的矩阵。...因此,与单位矩阵相乘的每个矩阵都等于它自己。例如,矩阵A乘以其单位矩阵等于A。 您可以通过以下事实来发现单位矩阵:它沿对角线为1,其他每个值都为零。它也是一个“方阵”,意思是它的行数与列数相同。 ?
在每一层,反向传播计算每个权重对总误差的贡献,也就是计算每个权重的梯度。这个过程是通过链式法则(Chain Rule)进行的,用于计算每个参数对损失函数的偏导数。...CP (Column Parallelism, 列并行性) = 1 列并行性是指将计算中的列划分给不同的处理单元。CP=1意味着没有进行列并行化,所有列都由一个处理单元负责计算。...通过合理配置张量、列、流水线和数据的并行化,可以显著提高训练速度,并确保在多个GPU或计算单元上有效地分配计算任务。 聚焦:模型加载过程的IO特征 模型加载(TB级),每个周期加载一次。...关键点2:RAG 场景主要数据IO 对存储系统的挑战: 数据摄取(Data ingestion): 操作通过流(logs via streams)进行数据摄取(实时更新)。...Deep Dive 如何构建统一的存储系统以适应不同阶段的AI管道需求?:在AI应用的不同阶段,存储系统需要能够动态响应大量的数据请求和快速的流量变化。
在了解卷积计算的基础之上,本文会继续为大家介绍卷积在内存中的数据格式以及张量中的卷积计算过程。 卷积的数学原理 在通常形式中,卷积是对两个实变函数的一种数学运算。...黄色区域为不同 t 的取值条件下参与卷积的有效区间,黑色直线最右端的点的取值为卷积结果。 图片 总结来说,积分的本质为可理解为求和的极限,卷积中“积”的过程即为相应的函数相乘和求积分的过程。...因为在输入与核中的每一个元素都必须明确地分开存储,我们通常假设在存储了数值的有限点集以外,这些函数的值都为 0。这意味着在实际操作中,我们可以通过对有限个数组元素的求和来实现无限求和。...自定义方式 自定义意为填充自定义的行/列数。...在卷积层,通常采用多个卷积核提取不同特征,单个卷积核的不同通道之间权重不共享(比如 RGB 有三通道,每个通道的权重参数相互独立)。另外,偏置参数对同一个卷积核的各个参数共享。 计算复杂度分析 Ⅰ.
本文的主要内容是帮助你学习如何进行向量、矩阵以及高阶张量(三维及以上的数组)的求导。并一步步引导你来进行向量、矩阵和张量的求导。...去掉求和符号的表达式如下所示(下标从 1 开始): 在这个表达式中,我们专门把 凸显出来,这是因为这一项正是我们要求导的项。显然,可以看出在求 对 的偏导数时,我们只需要关心 这一项即可。...例如:数据矩阵 中包含非常多的向量,每个向量代表一个输入,那到底是矩阵中的每一行代表一个输入,还是每一列代表一个输入呢? 在第一节中,我们介绍的示例中使用的向量 是列向量。...首先要做的还是写出 的表达式: 显然, 在 的表达式中没有起到任何作用,因此, 同时, 对 中第 3 列元素的求导结果是非零的,正如 表达式中展示的那样。...因为 中的每一个元素都只对 与中对应的那一行求导, 与 的不同行元素之间的导数均为0。 还可以进一步看出,计算偏导数 与和 的行没关系。
我们可以把如图所示的这个数据点x看成一个向量,一个向量就是一个一维数组,你可以把它看成一列数值或者表中的一行数值,n个元素的向量就是n维向量。...比向量大一点的范畴是矩阵,矩阵是由数字组成的矩形数组,向量则是矩阵中的一行或者一列,因此矩阵中的每一行都可以代表一个不同的数据点,相应的每一列数值则是该数据点的各个特征值。...这一切都是运用线性代数得到,代数基本就是在说关系,是对未知数之间的关系的探索。线性代数基本意味着线性关系,它是对矢量空间的信息的规整。...一个经过训练的”单词对向量”模型可以将“单词“转化成“向量”,然后我们可以对这些向量,进行数学计算。我们可以看出单词之间有多密切的关系。...比如动物的类型,单词之间的关联关系也可以构造出来,比如,罗马对于意大利的关系,和北京对中国的关系是一样的。
模型并行的基本思想是将模型的计算任务拆分到不同的设备上执行,以提高训练效率和处理更大规模的模型。下面将重点介绍模型并行中的张量并行。朴素张量并行张量并行广泛应用于分布式训练技术。...通过张量并行,可以将矩阵乘法等计算操作的矩阵按行或按列切分,然后在不同设备上并行执行部分计算,最后通过集合通信操作合并结果。...MatMul 并行矩阵乘法(MatMul)是深度学习中最常见的操作之一。在张量并行中,可以将矩阵按列或者按行切分,然后在不同设备上并行执行部分计算。...对于自注意力模块,可以将查询(Query)、键(Key)和值(Value)矩阵按列切分,不同设备分别计算注意力得分和加权求和,最后合并结果。...例如:将嵌入表按列切分,每个设备存储不同的列范围。设备 1 存储嵌入表 0 的 0 到 63 维度,设备 2 存储嵌入表 0 的 64 到 127 维度,依此类推。
(m,n) 创建一个全1的m行n列的张量 torch.zeros(m,n,dtype=张量类型) 创建一个符合张量类型的全0m行n列的张量 torch.eye(m,n) 生成一个m行n列的对角线为1,其他为...获取行数与列数 获取Tensor的行数与列数 实现功能 name.size() 获取张量的行数和列数,返回一个元组(m,n) name.shape() 同上 加法运算 加法运算 注释 name1+name2...函数 功能 name.view(-1,m) 将name这个Tensor转换为m列的张量,行数根据列数自动确定,-1是一种标志 name.view(n,-1) 将name这个Tensor转换为n行的张量,...列数根据行数自动确定,-1是一种标志 name.view(x,y) 将name这个m行n列的张量转换为x行y列的张量 因为上面的原因,所以可以用clone克隆一个副本,然后对副本进行变换。...)机制 前面的运算都是针对形状相同的Tensor,但当两个形状不同的Tensor进行运算时,会触发广播( broadcasting )机制。
, 23, 25]]) In [31]: x.sum(axis=1) # 对第(3-1)维求和,就是先“消灭”第二个维度,对每一列进行相加,即可消灭 Out[31]: tensor([[ 9, 12..., 15], [36, 39, 42]]) In [32]: x.sum(axis=2) # 对第(3-2)维求和,就是先“消灭”第一个维度,对每一行进行相加,即可消灭 Out[32...(顾名思义,view仅仅是改变了对这个张量的观察角度,内部数据并未改变) 虽然.view()与.reshape()返回的Tensor与源Tensor是共享data的,但是依然是一个新的Tensor(因为...然后我们就可以对z使用backward(),因为z是一个标量,backward()表示张量\mathbf{x}对标量z的梯度。...广播机制 当对两个形状不同的Tensor按元素运算时,可能会触发广播(broadcasting)机制:先适当复制元素使这两个Tensor形状相同后再按元素运算。
有没有什么办法让这些张量运算公式稍微显得对人类友好一些呢,能不能减少一些那种扭曲的 \sum 求和符号呢? 小爱发现,求和导致维度收缩,因此求和符号操作的指标总是只出现在公式的一边。...这种只出现在张量公式的一边的下标被称之为哑指标,反之为自由指标。 小爱同学脑瓜子滴溜一转,反正这种只出现在一边的哑指标一定是被求和求掉的,干脆把对应的 \sum 求和符号省略得了。...C_{ij} = A_{ik} B_{kj} 这个公式表达的含义如下: C这个张量的第i行第j列由 A 这个张量的第i行第k列和 B 这个张量的第k行第j列相乘,这样得到的是一个三维张量 D , 其元素为...D_{ikj} ,然后对 D 在维度k上求和得到。...2,只出现在元素计算公式箭头左边的指标叫做哑指标。 3,省略元素计算公式中对哑指标的求和符号。
领取专属 10元无门槛券
手把手带您无忧上云