深度学习框架之pytorch
先来说说pytorch 和tensorflow的区别吧
PyTorch 很简洁、易于使用、支持动态计算图而且内存使用很高效,提供大量模块化组件,支持丰富的预训练模型。
PyTorch 上训练一个数据集,可以使用 GPU 来增强其训练过程,因为它们运行在 CUDA上。
PyTorch 开发使用 Visdom完成可视化,但是 Visdom 提供的功能很简单且有限。
PyTorch有两个核心模块:计算图的按需和动态构建Autograd:执行动态图的自动微分可以在下图中看到,图会随着执行过而
改变和执行节点,没有特殊的会话接口或占位符。
TensorFlow ,运行速度慢。TensorFlow 的可视化库名为 TensorBoard。在 TensorFlow 中运行代码时,计算图是以静态方式定义
的。与外部世界的通信是通过 tf.Sessionobject 和 tf.Placeholder 执行,它们是在运行时会被外部数据替换的张量。计算图
的核心优势是能实现并行化或依赖驱动式调度,这能让训练速度更快,更有效率。
pytorch的一些小结:
Tensor是Pytorch中的重要数据结构。函数名后面带_的函数会修改Tensor本身。Tensor不支持的操作可以转换为numpy再转换回来。
torchvsion中实现了常用的图像数据加载功能;Variable封装了Tensor,并提供了自动求导功能;nn为神经网络设计接口,提供了损
失函数,优化器等功能。
t.Tensor(*sizes)创建时不会马上分配空间,系统会计算剩余内存是否足够使用。支持自动广播法则,也可以手动广播。autograd
中的核心数据结构是variable,包含三个主要属性,data保存variable所包含的tensor属性,grad保存data对应的梯度,gra