深入浅出PaddlePaddle函数——paddle.Tensor

这篇具有很好参考价值的文章主要介绍了深入浅出PaddlePaddle函数——paddle.Tensor。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分类目录:《深入浅出PaddlePaddle函数》总目录
相关文章:
· 深入浅出TensorFlow2函数——tf.Tensor
· 深入浅出Pytorch函数——torch.Tensor
· 深入浅出PaddlePaddle函数——paddle.Tensor
· 深入浅出PaddlePaddle函数——paddle.to_tensor


Tensor是Paddle中最为基础的数据结构,有几种创建Tensor的不同方式:文章来源地址https://www.toymoban.com/news/detail-444235.html

  • 用预先存在的数据创建1个Tensor,请参考paddle.to_tensor
  • 创建一个指定shape的Tensor,请参考paddle.onespaddle.zerospaddle.full
  • 创建一个与其他Tensor具有相同shapedtypeTensor,请参考paddle.ones_likepaddle.zeros_likepaddle.full_like
属性
  • clear_grad:将当前Tensor的梯度设为0,仅适用于具有梯度的Tensor,通常我们将其用于参数,因为其他临时Tensor没有梯度。
import paddle
input = paddle.uniform([10, 2])
linear = paddle.nn.Linear(2, 3)
out = linear(input)
out.backward()
print("Before clear_grad, linear.weight.grad: {}".format(linear.weight.grad))
linear.weight.clear_grad()
print("After clear_grad, linear.weight.grad: {}".format(linear.weight.grad))
  • clear_gradient:与clear_grad功能相同
  • dtype:查看一个Tensor的数据类型,支持:boolfloat16float32float64uint8int8int16int32int64类型
import paddle
x = paddle.to_tensor([1.0, 2.0, 3.0])
print("tensor's type is: {}".format(x.dtype))
  • grad:查看一个Tensor的梯度,数据类型为numpy.ndarray
import paddle
x = paddle.to_tensor([1.0, 2.0, 3.0], stop_gradient=False)
y = paddle.to_tensor([4.0, 5.0, 6.0], stop_gradient=False)
z = x * y
z.backward()
print("tensor's grad is: {}".format(x.grad))
  • is_leaf:判断Tensor是否为叶子Tensor。对于stop_gradientTrueTensor,它将是叶子Tensor。对于stop_gradientFalseTensor, 如果它是由用户创建的,它也会是叶子 Tensor
import paddle
x = paddle.to_tensor(1.)
print(x.is_leaf) # True
x = paddle.to_tensor(1., stop_gradient=True)
y = x + 1
print(x.is_leaf) # True
print(y.is_leaf) # True
x = paddle.to_tensor(1., stop_gradient=False)
y = x + 1
print(x.is_leaf) # True
print(y.is_leaf) # False
  • item(*args):将Tensor中特定位置的元素转化为Python标量,如果未指定位置,则该 Tensor必须为单元素Tensor
import paddle
x = paddle.to_tensor(1)
print(x.item())             #1
print(type(x.item()))       #<class 'int'>
x = paddle.to_tensor(1.0)
print(x.item())             #1.0
print(type(x.item()))       #<class 'float'>
x = paddle.to_tensor(True)
print(x.item())             #True
print(type(x.item()))       #<class 'bool'>
x = paddle.to_tensor(1+1j)
print(x.item())             #(1+1j)
print(type(x.item()))       #<class 'complex'>
x = paddle.to_tensor([[1.1, 2.2, 3.3]])
print(x.item(2))            #3.3
print(x.item(0, 2))         #3.3
  • name:查看一个TensornameTensorname是其唯一标识符,为python的字符串类型。
import paddle
print("Tensor name: ", paddle.to_tensor(1).name) # Tensor name: generated_tensor_0
  • ndim:查看一个Tensor的维度,也称作rank
import paddle
print("Tensor's number of dimensition: ", paddle.to_tensor([[1, 2], [3, 4]]).ndim) # Tensor's number of dimensition: 2
  • persistable:查看一个Tensorpersistable属性,该属性为True时表示持久性变量,持久性变量在每次迭代之后都不会删除。模型参数、学习率等Tensor,都是持久性变量。
import paddle
print("Whether Tensor is persistable: ", paddle.to_tensor(1).persistable) # Whether Tensor is persistable: false
  • place:查看一个Tensor的设备位置,Tensor可能的设备位置有三种:CPU/GPU/固定内存,其中固定内存也称为不可分页内存或锁页内存, 其与GPU之间具有更高的读写效率,并且支持异步传输,这对网络整体性能会有进一步提升,但其缺点是分配空间过多时可能会降低主机系统的性能, 因为其减少了用于存储虚拟内存数据的可分页内存。
import paddle
cpu_tensor = paddle.to_tensor(1, place=paddle.CPUPlace())
print(cpu_tensor.place)
  • shape:查看一个TensorshapeshapeTensor的一个重要的概念,其描述了Tensor 在每个维度上的元素数量。
import paddle
print("Tensor's shape: ", paddle.to_tensor([[1, 2], [3, 4]]).shape)   # Tensor's shape: [2, 2]
  • stop_gradient:查看一个Tensor是否计算并传播梯度,如果stop_gradientTrue,则该Tensor不会计算梯度,并会阻绝Autograd的梯度传播。 反之,则会计算梯度并传播梯度。用户自行创建的的Tensor,默认是True,模型参数的stop_gradient都为False
import paddle
print("Tensor's stop_gradient: ", paddle.to_tensor([[1, 2], [3, 4]]).stop_gradient)  # Tensor's stop_gradient: True
  • numel:在静态图模式下,返回一个长度为1并且元素值为输入x元素个数的Tensor;在动态图模式下,返回一个标量数值。

到了这里,关于深入浅出PaddlePaddle函数——paddle.Tensor的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入浅出PaddlePaddle函数——paddle.full

    分类目录:《深入浅出PaddlePaddle函数》总目录 相关文章: · 深入浅出PaddlePaddle函数——paddle.Tensor · 深入浅出PaddlePaddle函数——paddle.ones · 深入浅出PaddlePaddle函数——paddle.zeros · 深入浅出PaddlePaddle函数——paddle.full · 深入浅出PaddlePaddle函数——paddle.ones_like · 深入浅出Paddl

    2024年02月06日
    浏览(48)
  • 深入浅出PaddlePaddle函数——paddle.ones

    分类目录:《深入浅出PaddlePaddle函数》总目录 相关文章: · 深入浅出PaddlePaddle函数——paddle.Tensor · 深入浅出PaddlePaddle函数——paddle.ones · 深入浅出PaddlePaddle函数——paddle.zeros · 深入浅出PaddlePaddle函数——paddle.full · 深入浅出PaddlePaddle函数——paddle.ones_like · 深入浅出Paddl

    2024年02月05日
    浏览(57)
  • 深入浅出PaddlePaddle函数——paddle.arange

    分类目录:《深入浅出PaddlePaddle函数》总目录 相关文章: · 深入浅出TensorFlow2函数——tf.range · 深入浅出Pytorch函数——torch.arange · 深入浅出PaddlePaddle函数——paddle.arange 语法 当 dtype 表示浮点类型时,为了避免浮点计算误差,建议给 end 加上一个极小值 epsilon ,使边界可以更

    2024年02月05日
    浏览(82)
  • 深入浅出PaddlePaddle函数——paddle.zeros_like

    分类目录:《深入浅出PaddlePaddle函数》总目录 相关文章: · 深入浅出PaddlePaddle函数——paddle.Tensor · 深入浅出PaddlePaddle函数——paddle.ones · 深入浅出PaddlePaddle函数——paddle.zeros · 深入浅出PaddlePaddle函数——paddle.full · 深入浅出PaddlePaddle函数——paddle.ones_like · 深入浅出Paddl

    2024年02月07日
    浏览(48)
  • 深入浅出PaddlePaddle函数——paddle.full_like

    分类目录:《深入浅出PaddlePaddle函数》总目录 相关文章: · 深入浅出PaddlePaddle函数——paddle.Tensor · 深入浅出PaddlePaddle函数——paddle.ones · 深入浅出PaddlePaddle函数——paddle.zeros · 深入浅出PaddlePaddle函数——paddle.full · 深入浅出PaddlePaddle函数——paddle.ones_like · 深入浅出Paddl

    2024年02月05日
    浏览(60)
  • 深入浅出PaddlePaddle函数——paddle.ones_like

    分类目录:《深入浅出PaddlePaddle函数》总目录 相关文章: · 深入浅出PaddlePaddle函数——paddle.Tensor · 深入浅出PaddlePaddle函数——paddle.ones · 深入浅出PaddlePaddle函数——paddle.zeros · 深入浅出PaddlePaddle函数——paddle.full · 深入浅出PaddlePaddle函数——paddle.ones_like · 深入浅出Paddl

    2024年02月05日
    浏览(50)
  • 深入浅出Pytorch函数——torch.tensor

    分类目录:《深入浅出Pytorch函数》总目录 相关文章: · 深入浅出TensorFlow2函数——tf.constant · 深入浅出Pytorch函数——torch.tensor · 深入浅出Pytorch函数——torch.as_tensor · 深入浅出Pytorch函数——torch.Tensor · 深入浅出PaddlePaddle函数——paddle.to_tensor 基于 data 构建一个没有梯度历史

    2024年02月04日
    浏览(110)
  • 深入浅出Pytorch函数——torch.Tensor.backward

    分类目录:《深入浅出Pytorch函数》总目录 相关文章: · 深入浅出Pytorch函数——torch.Tensor 计算当前张量相对于图的梯度,该函数使用链式法则对图进行微分。如果张量不是一个标量(即其数据具有多个元素)并且需要梯度,则函数还需要指定梯度,指定的梯度应该是一个与

    2024年02月15日
    浏览(58)
  • 深入浅出TensorFlow2函数——tf.Tensor

    分类目录:《深入浅出TensorFlow2函数》总目录 相关文章: · 深入浅出TensorFlow2函数——tf.Tensor · 深入浅出Pytorch函数——torch.Tensor · 深入浅出PaddlePaddle函数——paddle.Tensor 一个 tf.Tensor 表示一个多维数组。在编写TensorFlow程序时,被操作和传递的主要对象就是 tf.Tensor 。 tf.Tens

    2024年02月17日
    浏览(41)
  • 深入浅出Pytorch函数——torch.as_tensor

    分类目录:《深入浅出Pytorch函数》总目录 相关文章: · 深入浅出TensorFlow2函数——tf.constant · 深入浅出Pytorch函数——torch.tensor · 深入浅出Pytorch函数——torch.as_tensor · 深入浅出Pytorch函数——torch.Tensor · 深入浅出PaddlePaddle函数——paddle.to_tensor 将数据转换为张量,共享数据并

    2024年02月05日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包