文章目录
*
–
+ 1 torch.Tensor
+ 2 Data types
+ 3 Initializing and basic operations
+
* 1)使用torch.tensor() 创建
* 2)使用python list创建
* 3)使用zeros ones函数创建
* 4)通过torch.dtype指定类型, torch.device指定构造器
* 5)零维张量
* 6)torch.Tensor.item()从包含单个值的张量中获取Python数字
+ 4 type changes
+
* 1)tensor间类型转换
* 2)数据存储位置转换
* 3)与Python数据类型转换
* 4)剥离出一个tensor参与计算,但不参与求导
1 torch.Tensor
A
torch.Tensor
is a multi-dimensional matrix containing elements of a single data type.
torch.Tensor
是包含单一数据类型的多维矩阵
2 Data types
Torch定义了10种不同CPU和GPU的张量类型,下面摘录常用的几种
Data typedtypeCPU tensorGPU tensor32-bit floating pointtorch.float32 or torch.float torch.FloatTensor
torch.cuda.FloatTensor64-bit floating pointtorch.float64 or torch.double torch.DoubleTensor
torch.cuda.DoubleTensor32-bit integer (signed)torch.int32 or torch.int torch.IntTensor
torch.cuda.IntTensor64-bit integer (signed)torch.int64 or torch.long torch.LongTensor
torch.cuda.LongTensorBooleantorch.bool torch.BoolTensor
torch.cuda.BoolTensor
torch.Tensor
is an alias for the default tensor type (torch.FloatTensor
).
torch.Tensor
是默认张量类型(torch.FloatTensor
)的别名
CPU张量在torch中,GPU张量在torch.cuda包中
从CPU转换到GPU,有一个 to(device)
的张量方法,可以创建张量的副本到指定设备(可以是CPU或GPU)
- GPU设备可以在冒号之后指定一个可选设备的索引。例如,系统中的第二个GPU可以用”cuda:1″寻址(索引从零开始)
- 另一种更为有效的方法是
使用torch.device类
,该类接受设备名称和可选索引。它有device属性,所以可以访问张量当前所在的设备。
从GPU转换到CPU,使用 .cpu()
方法
; 3 Initializing and basic operations
1)使用torch.tensor() 创建
; 2)使用python list创建
3)使用zeros ones函数创建
; 4)通过torch.dtype指定类型, torch.device指定构造器
5)零维张量
就是数字,比如说是某些操作的求和结果
可以使用 torch.tensor()
函数创建
; 6)torch.Tensor.item()从包含单个值的张量中获取Python数字
必须是单个值才行!!!!
4 type changes
1)tensor间类型转换
- 在Tensor后加
.long()
,.int()
,.float()
,.double()
等 - 也可以用
.to()
函数进行转换
; 2)数据存储位置转换
CPU张量 —-> GPU张量,使用 data.cuda()
或者 data.to()
GPU张量 —-> CPU张量,使用 data.cpu()
3)与Python数据类型转换
1 torch.Tensor —-> 单个Python数据,使用 data.item()
,data为Tensor变量且只能为包含单个数据
2 torch.Tensor —-> Python list,使用 data.tolist()
,data为Tensor变量,返回shape相同的可嵌套的list
3 torch.Tensor —-> numpy,使用 data.numpy()
,data为Tensor变量
4 numpy —-> torch.Tensor,tensor = torch
.from_numpy(ndarray)
5 list —-> numpy ,使用
np.array(list)
6 numpy—-> list ,使用
.tolist()
参考
; 4)剥离出一个tensor参与计算,但不参与求导
Tensor后加 .detach()
Original: https://blog.csdn.net/qq_36303923/article/details/121886377
Author: 莩甲柚
Title: torch中的数据类型和相互转换
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/706276/
转载文章受原作者版权保护。转载请注明原作者出处!