1、安装和基础知识

因为有些许的基础,所以这个笔记只说重点

1.1 pytorch简介

pytorch最流行,因为本身经过改版后和python能够无缝衔接,同时又是动态图,容易调试。

但是在这里虽然是学习pytorch的,也不能对其他诸如tensorflow的框架完全嗤之以鼻,就像机器学习中的“没有免费午餐定理”一样,没有哪个框架在所有方面都是最好的,所有当做工具就像,大锤子小锤子,铁锤子钢锤子都能砸钉子。在这里,这几个字框架都是由“自动微分”而来的,本质一样。

1.2 安装

Anaconda/miniconda+Pytorch+ IDE 

其实没啥好总结,为什么,因为你每次安装都是得百度,总结无法涵盖所有报错

1.3 学习资源

①《PyTorch深度学习实践》完结合集

10.卷积神经网络(基础篇)_哔哩哔哩_bilibili

②官方文档

③集智学院的pytorch入门,讲微分机制和框架啊那里,特别的好

以上为自己的体验和总结

2 基础知识

2.1 张量

首先要明白一个问题,为什么要有张量,有人会说要自动微分啊,回答对了一半,最初pytorch中张量tensor里面其实并没有自动微分,variable里面才有,那为什么最初要有tensor。这就需要涉及和numpy的对比了,numpy速度快,使用上又类似matlab简单受到大家欢迎,但是在深度学习,尤其是图像和序列中,我需要随时对维度进行处理,同时也需要广播机制,ndarray满足不了,所以才设计了tensor变量,当然后续pytorch也把variable里的autograd加到tensor里了,默认关闭,需要建立模型就加进去开启呗。

张量创建,可以直接也可以从nunmpy转

① 直接:torch,rand(4,3),其中rand经常出现在各个数据构造中,其实就是[0,1)之间的均匀分布,为什么是0~1,因为常用

② 和numpy转:torch.from_numpy(data),想转成numpy就更简单了,a.numpy()就行


2.2 自动求导

首先定义变量,x=torch.randn(3,3,requires_grad=True),下面通过运算得到result,一句result.backward()就行了,是不是很牛逼,你前面学了那么多微分,推导了那么多,结果在程序里就一在变量中把requires_grad打开,结果中.backward()加上就行了。另外这些自动微分机制能用在其他比如概率深度学习中,无他,就是用自动微分机制的,因为太好用了。有一定基础的可能会联想到cv和nlp,对应领域nn.module里可用的更多,你连requires_grad都不用设置,直接用。

2.3 并行计算

没拿玄乎,并行是相对于cpu讲的,说白了就是cuda,因此计算需要并行,直接data.cuda()就齐活了

你可能感兴趣的:(1、安装和基础知识)