Deep learning with pytorch 读书笔记 第一章 介绍DL和Pytorch

本章内容:
这本书将教会你什么
PyTorch 在构建深度学习项目中的角色
PyTorch的优势和劣势
硬件的要求

现在机器可以处理越来越多的问题,并且解决这些问题只通过学习大量的例子,而不用人工编码。
我们把这样的算法称为深度学习,使用深度神经网络通过大量的例子来训练。我们能够创建直到最近还属于人类特有能力的功能。

1.1 PyTorch 是什么?

Pytorch 是Python的一个Library,帮助建立深度学习项目,灵活并且易用。
PyTorch 提供的核心数据结构是 Tensor ,它是一个多维数组,能进行快速的数学运算。
就像Python是用于编程,PyTorch既是深度学习的绝佳入门,也是在专业环境中用于现实世界中高水平工作的工具。

1.2 这本书是什么?

这本书旨在让软件工程师、数据科学家等轻松地使用PyTorch构建深度学习项目。学完这本书,读者可以使用数据资源,构建出一个深度学习项目。
要求读者会用python,并且有实际操作的决心。
深度学习是个巨大的领域。这本书只涉及很小的领域,将 pytorch 用于图像数据集的处理。本书侧重于pytorch的实用,覆盖足够的基础知识,使读者可以使用深度学习解决实际问题,或者探索文献中涌现的新模型。

1.3 为什么选择 PyTorch?

Pytorch 简单易学,容易扩展,容易debug,非常的python化。
Pytorch 的 Tensor与Numpy数组很像,按时可以使用GPU加速进行自动梯度计算。
Tensor 的 API 可以随用随学。
Pytorch 可以实现复杂的模型,便于将想法无缝地转为python代码。
运行速度快,方便部署。

1.3.1 深度学习革命

回顾深度学习的发展。20世纪末,机器学习严重依赖于特征工程。特征工程需要找到原始数据的特征并表示,然后喂给算法来解决问题。
而深度学习,可以从原始数据中自动找到这些特征来完成任务。通过训练不断完善模型。常常比手工寻找特征的效果更好。

1.3.2 即时 VS 延时执行

Pytorch 的易用性很大程度上要归功于它的即时执行特性。因为如果执行时有错误,就能立刻找到出错的地方。
把计算过程编译成计算图能够得到更好的性能,但是却使程序更加难以调试。
TensorFlow是另一个具有竞争力的框架,它就是用静态的图模式。而Pytorch使用动态的图引擎。
动态图可以在不断向前的路径中随时更改,相比静态图,动态图更容易完成循环或者条件行为。
不过主流的框架都已经在兼有这两种模式。

1.3.3 深度学习的竞争格局

2017年pytorch 0.1 发布以后,深度学习的框架等趋向于整合和统一。第一个版本发布之后已经有Theano、TensorFlow等框架了。在随后的两年,主流的框架都被整合到Pytorch 和 TensorFlow。而这两者也开始相互融合。

1.4 PyTorch has the batteries included

Pytorch的主要部件等信息。
首先,pytorch 不只可以使用python运行,还可以使用C语言等运行,方便用于生产环节。当然,pytorch 与python的生态融合得最好。
pytorch 的第一个核心是,它使用多维数组,称为 Tensor,张量,然后它有大量的由 torch 模块提供的对Tensor的操作,能在cpu和gpu上运行。第二个核心是,可以追踪到对tensor的所有操作,通过反向传播计算所有参数的导数,模块torch.autograd非常完善。
pytorch可以用在科学应用的几乎所有方面,不限于神经网络,还可以用于物理、渲染等。
不过pytorch首先是一个深度学习的库,因此它提供了构建神经网络和训练它们所需的所有模块。
在这里插入图片描述
构建神经网络的核心模块是 torch.nn,提供了常见的神经网络层,以及其他架构组件,比如全连接层、卷积层、激活函数、损失函数等。
要训练模型,我们还需要:用于训练的数据、使模型适用于数据的优化器、把模型和数据送到硬件上的方法。
数据的加载和处理等工具在 torch.util.data 模块。两个主要的类:一个是 Dataset,他是你自定义的数据和标准Tensor的桥梁;另一个是 Dataloader,它可以产生子进程,在后台从 Dataset加载数据,并等待训练。
torch.nn.DataParallel 和 torch.distributed 这两个可以帮助调用多个GPU或者机器来进行训练。
在训练数据上运行模型得到结果后,torch.optim 将提供更新模型的标准方法,以优化训练。
如前面所说,pytorch是即时执行的模型,后端运行速度挺快,但是需要python随时来调用。这还是需要时间的。那么为了绕开python,pytorch也提供了一个名为 TorchScript的延时执行模型。使用 TorchScript,PyTorch可以序列化一组指令,使之无需python调用。

1.4.1 深度学习所需硬件

本书的第一部分使用个人普通的个人电脑就可以实现训练;第二部分需要的训练要求是 8GB 内存的GPU。
当然,如果愿意等,较高的硬件也不是必须的。
现在很多云计算供应商为硬件配置提供了方便。
所以如果没有足够的硬件,可以尝试使用云平台,通常都配有 jupyter notebook 并且预安装了pytorch。
最后一点:操作系统。macos不能用CUDA,Linux和Windows可以。
去官网安装pytorch。Windows用户可以使用Anaconda安装,Linux可以使用pip安装。
注意,第二部分对硬盘有要求,要处理图像信息,至少准备200GB的硬盘空间。

1.4.2 使用 Jupyter notebooks

Jupyter notebook 可以很直观地生成互动性的文档。

1.5 Conclusion

本章介绍了以上内容。😓下一章介绍具体的内容。

1.6 练习

启动python,试试:
你用的python是什么版本?
是否可以 import torch?
torch.cuda.is_available() 的结果是什么?
启动 Jupyter notebook 服务器:
Jupyter中的python版本是什么?

1.7 Summary

深度学习模型通过自动学习,将数据集中的input和output关联起来。
像 Pytorch 一样的库,可以帮助有效地构建和训练神经网络模型。
Pytorch 最大限度地减少了认知负担,同时注重灵活性和速度。默认的操作方式为即时执行。
TorchScript 是一个预编译的延时执行模式,可以使用 C++调用。
自从2017年发布,深度学习工具的生态系统已经大大巩固。
Pytorch 提供了大量的实用工具库来促进深度学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值