学习网站: http://pytorch123.com/SecondSection/what_is_pytorch/
# -*- coding: UTF-8 -*-
"""
Modify: 2019-12-10
"""
# Tensors 张量
# Tensors 类似于Numpy的ndarrays, 同时tensors可以使用GPU进行计算
from __future__ import print_function
import torch
#构造一个5*3矩阵,不初始化
x = torch.empty(5, 3)
print(x)
#构造一个随机初始化矩阵
x = torch.rand(5, 3)
print(x)
#构造一个矩阵全为0, 而且数据类型是long
x = torch.zeros(5, 3, dtype=torch.long)
print(x)
#构造一个张量,直接使用数据
x = torch.tensor([6.6, 3])
print(x.dtype)
#基于已经存在的一个tensor创建一个新的tensor
# new_* 改变了x的原有尺寸,到保留其他属性
x = x.new_ones(5, 3)
print(x.dtype)
#张量的类型会被重写,但保留大小
x = torch.rand_like(x, dtype=torch.double)
print(x.dtype) # torch.float64
#获取它的维度信息
print(x.size()) # torch.Size([5, 3])
# torch.Size是一个元组,所以它支持左右的元组操作
#加法 1
y = torch.rand(5, 3)
print(x + y)
#加法2
print(torch.add(x, y))
# 加法,提供一个输出tensor作为参数
result = torch.empty(5, 3)
torch.add(x, y, out=result)
print(result)
#加法 in-place
y.add_(x)
print(y)
#任何使张量变化的操作都有一个前缀,例如x.copy(),x.t_(),将会改变x
#可以使用标准的numpy类似的索引操作
print(x[:, 1]) # 输出第一列
#改变大小,如果想改变一个tensor的大小或者形状,可以使用torch.view
x = torch.randn(4, 4)
y = x.view(16)
z = x.view(-1, 8) # -1 是指从其他维度推算出来
print(x.size(), y.size(), z.size())
#如果你有一个元素tensor, 使用 .item()来获得这个value
x = torch.randn(1)
print(x)
print(x.item())
산출