深度学习基础前篇

  • 张量(Tensor):深度学习中表示和存储数据的主要形式。在动手实践机器学习之前,需要熟悉张量的概念、性质和运算规则,以及了解飞桨中张量的各种API。
  • 算子(Operator):构建神经网络模型的基础组件。每个算子有前向和反向计算过程,前向计算对应一个数学函数,而反向计算对应这个数学函数的梯度计算。有了算子,我们就可以很方便地通过算子来搭建复杂的神经网络模型,而不需要手工计算梯度。

在深度学习的实践中,我们通常使用向量或矩阵运算来提高计算效率。,这样可以充分利用计算机的并行计算能力,特别是利用GPU来实现高效矩阵运算。

在深度学习框架中,数据经常用张量(Tensor)的形式来存储。张量是矩阵的扩展与延伸,可以认为是高阶的矩阵。1阶张量为向量,2阶张量为矩阵。如果你对Numpy熟悉,那么张量是类似于Numpy的多维数组(ndarray)的概念,可以具有任意多的维度。

张量的大小可以用形状(shape)来描述。比如一个三维张量的形状是 [2,2,5][2, 2, 5][2,2,5],表示每一维(也称为轴(axis))的元素的数量,即第0轴上元素数量是2,第1轴上元素数量是2,第2轴上的元素数量为5。

张量中元素的类型可以是布尔型数据、整数、浮点数或者复数,但同一张量中所有元素的数据类型均相同。因此我们可以给张量定义一个数据类型(dtype)来表示其元素的类型。

  创建张量的方式: 

        (1)通过指定的Python列表数据[2.0, 3.0, 4.0],创建一个一维张量。(一维是向量)

        (2)通过指定的Python列表数据来创建类似矩阵(matrix)的二维张量(二维矩阵.......)。 

张量在任何一个维度上的元素数量必须相等​​​​​​​  

创建张量的方法:

(1)指定形状创建

如果要创建一个指定形状、元素数据相同的张量,可以使用paddle.zeros(全0 )paddle.ones(全1)paddle.full(指定数字大小)

**stop_gradient=True,表示不计算梯度

        使用paddle.full创建数据全为指定值,形状为[m, n]的Tensor,这里我们指定数据为10 full_Tensor = paddle.full([m, n], 10),下面为full的结果:

         [[10., 10., 10.],
        [10., 10., 10.]])

(2)指定区间创建:

        如果要在指定区间内创建张量,可以使用paddle.arangepaddle.linspace

         使用paddle.arange创建以步长step均匀分隔数值区间[start, end)的一维Tensor                 arange_Tensor = paddle.arange(start=1, end=5, step=1)不包括end

         使用paddle.linspace创建以元素个数num均匀分隔数值区间[start, stop]的Tensor                 linspace_Tensor = paddle.linspace(start=1, stop=5, num=5)可包括end,根据num确定

使用reshape时存在一些技巧,比如:

  • -1表示这个维度的值是从张量的元素总数和剩余维度推断出来的。因此,有且只有一个维度可以被设置为-1。
  • 0表示实际的维数是从张量的对应维数中复制出来的,因此shape中0所对应的索引值不能超过张量的总维度。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值