张量的基本用法:
#创建一个没有初始化的 5 * 3 矩阵:
x = torch.empty(5, 3) #之后可以对这个没有初始化的矩阵赋值
print(x)
"""
对比有无初始化的矩阵:当声明一个未初始化的矩阵时,
它本身不包含任何确切的值.当创建一个未初始化的矩
阵时,分配给矩阵的内存中有什么数值就赋值给了这个
矩阵,本质上是毫无意义的数据.
因为内存里面不是空的,随机分配的内存里面一定是
有数据的
"""
#创建一个随机初始化矩阵:
x = torch.rand(5, 3)#均值为0,方差为1的标准高斯分布数据
print(x)
#构造一个填满 0 且数据类型为 long 的矩阵:
x = torch.zeros(5, 3, dtype=torch.long)
print(x)
#直接从数据构造张量:
x = torch.tensor([5.5, 3])
print(x)
"""
tensor([5.5000, 3.0000])
"""
#根据现有的 tensor 建立新的 tensor 。
# 除非用户提供新的值,否则这些方法将重用输入张量
# 的属性,例如 dtype 等:
#利用news._methods方法得到一个张量
x = x.new_ones(5, 3, dtype=torch.double) #这个张量五行三列,元素全是1
# new_* methods take in sizes
print(x)
#利用randn_like方法得到相同张量尺寸的一个新张量,并利用随机初始化对其来赋值
y = torch.randn_like(x, dtype=torch.float) # 重载 dtype!
print(y) # 结果size一致
#获取张量的形状:
print(y.size())
#注意:torch.Size 本质上还是 tuple ,所以支持 tuple 的一切操作。
#加法:形式一
y = torch.rand(5, 3)
print(x