1.对比无初始化的矩阵,当声明一个未初始化的矩阵时,它本身不包含任何确切的值。当创建一个未初始化的矩阵时,分配给矩阵的内存中有什么数值就赋值给这个矩阵,本质是毫无意义的数据。
from __future__ import print_function
import torch
# 创建一个没有初始化的矩阵
x=torch.empty(5,3)
print(x)
# 创建一个有初始化的矩阵;这里符合高斯分布;
y=torch.rand(5,3)
print(y)
# 创建一个全零矩阵并可指定数据元素的类型为0
y=torch.zeros(5,3,dtype=torch.long)
print(y)
# 直接通过数据创建张量
x=torch.tensor([2.5,3.5])
print(x)
# 通过已有的一个张量创建相同的尺寸的新张量
x= x.new_ones(5,4,dtype=torch.double)
print(x)
y=torch.rand_like(x,dtype=torch.float)
print(y)
# 采用.size()方法来得到张量的形状
print(x.size())
print(y.size())
a,b=x.size()
print("a=",a)
print("b=",b)
# 改变张量的形状 torch.view()
x=torch.randn(4,4)
# tensor.view()操作需要保证数据元素的总数量不变
y=x.view(16)
# -1代表自动匹配行的个数,列定死为8
z=x.view(-1,8)
print(x.size(), y.size(),z.size())
# 如果张量中只要一个元素,可以通过.item()将值取出,作为一个python number
x=torch.randn(1)
print(x)
print(x.item())
# 若果张量中有大于等于2 的值,这会报错
x=torch.randn(2)
print(x)
print(x.item())
浙公网安备 33010602011771号