1-Pytorch初始化张量和张量的类型
1 导入必备库
python
import torch
import numpy as np
2 初始化张量
python
# 初始化张量
t = torch.tensor([1,2])#.type(torch.FloatTensor)
print(t)
print(t.dtype)
输出:
tensor([1, 2])
torch.int64
3 创建float型张量
python
# 创建float型张量
t = torch.FloatTensor([1,2])
print(t)
print(t.dtype)
t = torch.LongTensor([1,2])#int型
print(t)
print(t.dtype)
输出:
tensor([1., 2.])
torch.float32
tensor([1, 2])
torch.int64
4 从Numpy数组ndarray创建张量
python
# 从Numpy数组ndarray创建张量
np_array = np.array([[1,2],[3,4]])
t_np = torch.from_numpy(np_array)#.type(torch.int32)
print(t_np)
'''张量的ndarray类型主要包含:
32位浮点型:torch.float32/torh.float(常用),相当于torch.FloatTensor
64位浮点型:torch.float64
16位浮点型:torch.float16
64位整型:torch.in64/torch.long(常用),相当于torch.LongTensor
32位整型:torch.int32
16位整型:torch.int16
8位整型:torch.int8
'''
print(torch.float == torch.float32)
print(torch.long == torch.int64)
输出:
tensor([[1, 2],
[3, 4]], dtype=torch.int32)
True
True
5 构建张量时用dtype明确其类型,或者用type
python
# 构建张量时用dtype明确其类型,或者用type
t = torch.tensor([[1, 2],
[3, 4]], dtype=torch.int32)
print(t)
print(t.dtype)
t = torch.tensor([[1, 2],
[3, 4]]).type(torch.int32)
print(t)
print(t.dtype)
输出:
tensor([[1, 2],
[3, 4]], dtype=torch.int32)
torch.int32
tensor([[1, 2],
[3, 4]], dtype=torch.int32)
torch.int32
6 等价转换int64和float32
python
t = torch.tensor([[1, 2],
[3, 4]]).type(torch.int32)
print(t)
print(t.dtype)
t = t.long() #等同int64
print(t)
print(t.dtype)
t = t.float() #等同float32
print(t)
print(t.dtype)
输出:
tensor([[1, 2],
[3, 4]], dtype=torch.int32)
torch.int32
tensor([[1, 2],
[3, 4]])
torch.int64
tensor([[1., 2.],
[3., 4.]])
torch.float32