张量的基本操作

一、获得张量元素的个数

import torch
a=torch.Tensor(2)
print(torch.numel(a))

二、torch.tensor() 与torch.Tensor()的区别

import torch
import numpy as np
#torch.tensor() 将数字、列表、numpy.ndarray转成张量形式
a=torch.tensor([4,5])
print(a) #tensor([4, 5])
an=np.asarray([4,5])
print(torch.tensor(an)) #tensor([4, 5], dtype=torch.int32)

#torch.Tensor()根据指定形状、类型生成张量
dim0,dim1,dim2=2,1,3
print(torch.Tensor(dim0,dim1,dim2)) #根据形状生成张量 tensor([[[0., 0., 0.]],[[0., 0., 0.]]])
print(torch.Tensor([[1,3],[2,4]])) #根据内容生成张量 tensor([[1., 3.],[2., 4.]])

三、随机张量生成

1.设置随机种子

import torch
torch.manual_seed(42) #设置随机种子
torch.initial_seed() #查看随机种子

2.指定形状生成随机值

torch.randn(2,3) #2*3维度的张量

3.生成线性空间的随机值

print(torch.arange(1,10,step=2) # 范围1 ~10,步长为2进行取值
print(torch.linspace(1,9,steps=5) #范围1~9,均匀取5个值

4.生成未初始化的矩阵

print(torch.empty(1,2) 

四、张量与Numpy转换

import numpy as np
a=tensor(5)
print(a.numpy()) #张量转numpy对象

#numpy转成张量
anp=np.asarray([4,5)
print(torch.tensor(anp) #第一种 
print(torch.from_numpy(anp)) #第二种

注意

书本上说,Numpy转换成张量时,只是简单的指针赋值,并不会复制,所以是共享内存。
但我在实际操作时,发现其实内存不一样,两个任何一个改变不会对另一个产生影响。

你可能感兴趣的:(pytorch,numpy,python,机器学习)