pytorch学习-张量

# tensors(张量)
# Tensors类似于Numpy的ndarrays,同时Tensors可以使用GPU进行计算
from __future__ import print_function
import torch
# 构造一个5x3的矩阵,不初始化
x = torch.empty(5,3)
print(x)

"""
tensor([[9.6429e-39, 9.2755e-39, 1.0286e-38],
        [9.0919e-39, 8.9082e-39, 9.2755e-39],
        [8.4490e-39, 1.0194e-38, 9.0919e-39],
        [8.4490e-39, 9.6429e-39, 1.0653e-38],
        [9.6429e-39, 1.0745e-38, 9.6429e-39]])
"""

# 构造一个随机初始化的矩阵
x = torch.rand(5,3)
print(x)
"""
tensor([[0.9465, 0.4589, 0.4536],
        [0.7979, 0.1757, 0.0958],
        [0.0453, 0.6282, 0.7068],
        [0.3025, 0.5211, 0.8735],
        [0.8787, 0.6387, 0.7189]])
"""

# 构造一个矩阵全为0,而且数据类型是long
x = torch.zeros(5,3,dtype=torch.long)
print(x)
"""
tensor([[0, 0, 0],
        [0, 0, 0],
        [0, 0, 0],
        [0, 0, 0],
        [0, 0, 0]])
"""

# 构造一个张量,直接使用数据
x = torch.tensor([5.5,3])
print(x)
"""
tensor([5.5000, 3.0000])
"""

# 创建一个基于已经存在的tensor
x = x.new_ones(5,3,dtype=torch.double)
print(x)

"""
tensor([[1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.]], dtype=torch.float64)
"""
a = torch.randn_like(x,dtype = torch.float)
print(x)
"""
tensor([[1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.]], dtype=torch.float64)
"""
print(x.size())  # 获取维度信息
# torch.Size([5, 3])
# 注意:torch.size是一个元组,所以它支持左右的元组操作

# 操作
# 加法:方式一
y = torch.rand(5,3)
print(x + y)
"""
tensor([[1.5941, 1.5211, 1.8609],
        [1.1351, 1.4910, 1.4718],
        [1.8471, 1.1748, 1.2307],
        [1.5962, 1.6199, 1.4634],
        [1.8209, 1.5574, 1.0402]], dtype=torch.float64)

"""

# 加法:方式2
print(torch.add(x,y))

# 加法:提供另外一个输出tensor作为参数
result = torch.empty(5,3)
torch.add(x,y,out = result)
print(result)
"""
tensor([[1.3855, 1.8855, 1.2875],
        [1.6356, 1.5559, 1.9643],
        [1.6473, 1.9454, 1.3411],
        [1.0081, 1.3039, 1.2931],
        [1.6107, 1.5697, 1.3384]])

"""

# 加法:将x加到y上
y.add_(x)
print(y)
# 注意:任何使张量会发生变化的操作都有一个前缀 ‘’。例如:x.copy(y), x.t_(), 将会改变 x.

# 可以使用标准的numpy类似的索引操作
print(x[:,1])  # tensor([1., 1., 1., 1., 1.], dtype=torch.float64)

# 改变大小:如果想改变一个tensor的形状或者大小,可以使用torch.view:
x = torch.randn(4,4)
y = x.view(16)
z = x.view(-1,8)  # -1是根据给出的另外一个维度来推断,因为16个元素,一个维度为8,另一个维度为2
print(x.size(),y.size(),z.size())
# torch.Size([4, 4]) torch.Size([16]) torch.Size([2, 8])

# 如果你有一个元素tensor,使用.item()来获得这个value
x = torch.randn(1)
print(x)  # tensor([-0.2877])
print(x.item())  # -0.28765085339546204



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值