动手深度学习Pytorch版学习笔记(一)——Tensor张量

前言

开始沐神的《动手深度学习》pytorch 的学习 ,这边作为学习笔记的记录 当做自我监督
环境的搭建 这边就不记录了 实验室 以及自己的笔记本 配置的是GPU版本的 不过笔记本不用的还是CPU版本为主

1. 创建

# 导入
import torch

numpy创建Ndarray基本一致

x1 = torch.tensor([[3,3,3],[4,4,4]])
x2 = torch.rand(3,5) #0-1 随机
x3 = torch.zeros((3,3),dtype=torch.float)

x4 = torch.ones_like(x3) #_like 就是创建x3形状一样的tensor  ones全是1
# 这边随便举例 _like 可以任意用  用法很灵活

output:(jupyter notebook)

x1:
tensor([[3, 3, 3],
        [4, 4, 4]])
x2
tensor([[0.5000, 0.3394, 0.2527, 0.6741, 0.7538],
        [0.6232, 0.8377, 0.3280, 0.8127, 0.3826],
        [0.4493, 0.9924, 0.1987, 0.6049, 0.0384]])
x3
tensor([[0., 0., 0.],
        [0., 0., 0.],
        [0., 0., 0.]])
x4
tensor([[1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.]])

通过shape或者size()来获取Tensor的形状:

x4.size() # torch.Size([3, 3])
x4.shape  # torch.Size([3, 3])

注意返回的是一个tuple

常用创建Tensor函数,创建的时候都可以指定dtype,官方API函数:

函数 功能
tensor(data) 直接构造函数,类比np.array
ones(sizes) 全1
zeros(sizes) 全0
eye(sizes) 对角为1的tensor,其余为0
arange(s,e,step) 从s到e,步长为step
linspace(s,e,steps) 从s到e,均匀切分成steps份
rand/randn(*sizes) 均匀/标准分布
normal(mean,std)/uniform(from,to) 正态分布/均匀分布
randperm(m) 随机排列

2. 操作

2.1 算数

加法实现

# 方法一:
x = torch.rand(3,5)
y = torch.rand(3,5)
x+y

# 方法二:
y.add_(x)

output:
tensor([[1.1435, 1.1241, 1.0746, 1.1653, 1.1604],
        [0.6596, 1.4197, 0.6226, 0.5329, 0.4953],
        [0.9231, 0.0624, 1.2208, 0.6266, 0.9014]])

pytorch中 _后缀 就是修改原本对象 这里就是将x加到y上 修改了y

写着写着 发现别人已经做过了 我去站在巨人的肩膀咯
深度学习 从零开始 会很慢 。。。。。。

框架学习后 就跑案例吧

你可能感兴趣的:(Pytorch,pytorch,深度学习,python)