开始沐神的《动手深度学习》pytorch 的学习 ,这边作为学习笔记的记录 当做自我监督
环境的搭建 这边就不记录了 实验室 以及自己的笔记本 配置的是GPU版本的 不过笔记本不用的还是CPU版本为主
# 导入
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) | 随机排列 |
加法实现
# 方法一:
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
写着写着 发现别人已经做过了 我去站在巨人的肩膀咯
深度学习 从零开始 会很慢 。。。。。。
框架学习后 就跑案例吧