深入浅出PaddlePaddle函数——paddle.Tensor
分类目录:《深入浅出PaddlePaddle函数》总目录
相关文章:
· 深入浅出TensorFlow2函数——tf.Tensor
· 深入浅出Pytorch函数——torch.Tensor
· 深入浅出PaddlePaddle函数——paddle.Tensor
· 深入浅出PaddlePaddle函数——paddle.to_tensor
Tensor
是Paddle中最为基础的数据结构,有几种创建Tensor
的不同方式:
- 用预先存在的数据创建1个
Tensor
,请参考paddle.to_tensor
- 创建一个指定
shape
的Tensor,请参考paddle.ones
、paddle.zeros
、paddle.full
等 - 创建一个与其他
Tensor
具有相同shape
与dtype
的Tensor
,请参考paddle.ones_like
、paddle.zeros_like
、paddle.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
的数据类型,支持:bool
、float16
、float32
、float64
、uint8
、int8
、int16
、int32
、int64
类型
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_gradient
为True
的Tensor
,它将是叶子Tensor
。对于stop_gradient
为False
的Tensor
, 如果它是由用户创建的,它也会是叶子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
:查看一个Tensor
的name
,Tensor
的name
是其唯一标识符,为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
:查看一个Tensor
的persistable
属性,该属性为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
:查看一个Tensor
的shape
,shape
是Tensor
的一个重要的概念,其描述了Tensor
在每个维度上的元素数量。
import paddle
print("Tensor's shape: ", paddle.to_tensor([[1, 2], [3, 4]]).shape) # Tensor's shape: [2, 2]
stop_gradient
:查看一个Tensor
是否计算并传播梯度,如果stop_gradient
为True
,则该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相关推荐
- 深入浅出PaddlePaddle函数——paddle.ones_like
分类目录:<深入浅出PaddlePaddle函数>总目录 相关文章: · 深入浅出PaddlePaddle函数--paddle.Tensor · 深入浅出PaddlePaddle函数--p ...
- 深入浅出PaddlePaddle函数——paddle.arange
分类目录:<深入浅出PaddlePaddle函数>总目录 相关文章: · 深入浅出TensorFlow2函数--tf.range · 深入浅出Pytorch函数--torch.arange ...
- 深入浅出PaddlePaddle函数——paddle.numel
分类目录:<深入浅出PaddlePaddle函数>总目录 相关文章: · 深入浅出TensorFlow2函数--tf.size · 深入浅出Pytorch函数--torch.numel · ...
- 深入浅出PaddlePaddle函数——paddle.shape
分类目录:<深入浅出PaddlePaddle函数>总目录 语法 paddle.shape(input) 参数 input:[Tensor] 输入的多维Tensor或SelectedRows ...
- 深入浅出Pytorch函数——torch.arange
分类目录:<深入浅出Pytorch函数>总目录 相关文章: · 深入浅出TensorFlow2函数--tf.range · 深入浅出Pytorch函数--torch.arange · 深入 ...
- 深入浅出Pytorch函数——torch.exp
分类目录:<深入浅出Pytorch函数>总目录 相关文章: · 深入浅出TensorFlow2函数--tf.exp · 深入浅出TensorFlow2函数--tf.math.exp · 深 ...
- 深入浅出TensorFlow2函数——tf.constant
分类目录:<深入浅出TensorFlow2函数>总目录 相关文章: · 深入浅出TensorFlow2函数--tf.constant · 深入浅出TensorFlow2函数--tf.Ten ...
- 深入浅出Pytorch函数——torch.numel
分类目录:<深入浅出Pytorch函数>总目录 相关文章: · 深入浅出TensorFlow2函数--tf.size · 深入浅出Pytorch函数--torch.numel · 深入浅出 ...
- 深入浅出Pytorch函数——torch.zeros
分类目录:<深入浅出Pytorch函数>总目录 相关文章: · 深入浅出Pytorch函数--torch.Tensor · 深入浅出Pytorch函数--torch.ones · 深入浅出 ...
最新文章
- mysql 字符串有有乱码 转码_第09期:有关 MySQL 字符集的乱码问题
- linux免交互登陆远程主机并执行命令(密钥对和Expect)
- 用纸作出来的艺术品 漂亮!
- 厦大的计算机博士好考吗,2018双非学姐的厦大考博逆袭之路——本硕求学生涯历程...
- python openoffice_windows下安装UNO,配置AEROO_REPORT (Openoffice4已经升级为Python2.7.5版)...
- Spring4.3x教程之一IOCDI
- 【经典回放】多种语言系列数据结构算法:希尔排序(C/C#版)
- GIS实战应用案例100篇(二十一)-全国分省、市、县净初级生产力NPP数据制作实战(附代码)
- RS 学习笔记 3-1
- ntp symmetric_Python使用示例设置symmetric_difference()方法
- Linux初级运维(十七)——Linux内核编译与系统裁减
- bzoj1041 [HAOI2008]圆上的整点 gcd
- python 重写抽象类编译错误_从零开始的Java之旅5.0继承、super、this、抽象类
- strongswan 配置文件 /etc/ipsec.conf 速查手册1
- mac安装JDK及maven
- 计算一个3位数各个位数之和
- IC基础知识3-输入阻抗和输出阻抗
- MT6771平台简要了解
- Linux命令详解(2) – mv
- html字母上方加箭头,html5怎么在图片上加左右箭头
热门文章
- 【python】win32模拟键盘实现游戏内操作
- 第一篇 .NET高级技术之索引器
- 《C++ Primer (5th Edition)》笔记-Part IV. Advanced Topics
- Centos7在公网使用PCDN拨号
- 支付服务-----功能实现逻辑
- 大数据心法来了!一站式玩转MaxCompute
- 文件夹重命名,快速修改多个文件夹名称
- __attribute__((section(”XXXX“)))的编译属性---section
- 本机ping不通虚拟机解决方法
- Oracle-Materialized View