0
点赞
收藏
分享

微信扫一扫

PyTorch进阶学习笔记

王传学 2022-03-17 阅读 92

在这里首先感谢Datawhale这个平台,真的非常高效率的帮我提升了在pytorch上的重点需要掌握的知识,内容精炼且全是干货,对在职人太友好了!
安利结束,开始学习~

第一章 PyTorch简介和安装

PyTorch是一个很强大的深度学习库,在学术中使用占比很大。
我这里是Mac系统的安装,相比起教程中的win/linux安装感觉还是简单不少(之前就已经安好啦),有需要指导的小伙伴可以评论。

第二章 基础知识

这里划重点!

  • 张量的创建/随机初始化
a = torch.tensor(1.0, dtype=torch.float)
d = torch.FloatTensor(2,3)
f = torch.IntTensor([1,2,3,4]) 
k = torch.rand(2, 3) 
l = torch.ones(2, 3)
m = torch.zeros(2, 3)
n = torch.arange(0, 10, 2) #arrange用于创造等差数列 interval is 2
  • 查看/修改维度
    .shape or .size()
    .view(row,column)
    .unsqeeze(1)#加一维度
    .squeeze(1)

  • tensor&numpy.array

1.array->tensor
h = torch.tensor(g) #g = np.array([[1,2,3],[4,5,6]])
i = torch.from_numpy(g)

2.tensor->array
j = h.numpy()
共享内存的情况
torch.from_numpy()和torch.as_tensor()从numpy array创建得到的张量和原数据是共享内存的,张量对应的变量不是独立变量,修改numpy array会导致对应tensor的改变。
如代码例中所示,修改g改变i
  • tensor运算
o = torch.add(k,l)#o=k+l
#broadcast is two different size of  tensors adding.
print(p + q)
  • 灵活运用索引 [:]
  • 自动求导
    x1 = torch.tensor(1.0, requires_grad=True)
    x1.grad.data是在有requires_grad=True即要求求导数的该数字的结果。
    y.backward()反向传播于梯度,不清0会累积。
举报

相关推荐

0 条评论