目录
中文文档:https://www.pytorchtutorial.com/docs/
pytorch的多gpu使用tips:https://medium.com/huggingface/training-larger-batches-practical-tips-on-1-gpu-multi-gpu-distributed-setups-ec88c3e51255
https://github.com/williamFalcon/pytorch-lightning
参考正式支持Transformer与TensorBoard,PyTorch 1.2新鲜出炉
PyTorch 1.2 版本加入了标准的 nn.Transformer 模块。nn.Transformer 模块完全依赖注意机制描述输入和输出之间的全局依赖关系。nn.Transformer 模块的组件是单独设计的,以便于被分开使用。例如,没有更大的 nn.Transformer 的情况下,nn.TransformerEncoder 可被自身使用。
简单的输入from torch.untils.tensorboard import SummaryWriter
就能启动 TensorBoard。一旦我们安装了 TensorBoard,PyTorch 的这项新 API 就会将模型和指标记录到 TensorBoard UI 的目录中,并进行可视化。它对所有基于 PyTorch、Caffe 2 的模型和张量都支持数量、图像、直方图、图和嵌入可视化。
2019年度机器学习框架王者之战!PyTorch 1.3重磅发布,TensorFlow有未来吗?
PyTorch称霸学界,TensorFlow固守业界,ML框架之争将走向何方?
PyTorch JIT是PyTorch的一个中间表征(IR),被称为TorchScript。TorchScript是PyTorch的「图」表征。你可以使用tracing或script模式把一个常规的PyTorch模型转换为TorchScript。
一旦你的 PyTorch 模型在这个 IR 中,我们就得到了图模式的所有好处。我们可以在没有Python依赖的情况下用C++部署PyTorch模型,还可以优化该模型。
在API层面上,TensorFlow的eager模式与PyTorch的eager模式基本相同,最初是由Chainer发明的。加入eager模式之后,TensorFlow就拥有了PyTorch eager模式的大部分优势(易用、可调试等)。
但这也给TensorFlow带来了相同的劣势。TensorFlow的eager模型不能导出到非Python环境中,无法优化,也无法在移动端运行。
这将TensorFlow置于与PyTorch相同的境地,它们的解决方式也基本相同——要么trace你的代码(tf.function),要么重新解释Python代码(Autograph)。
因此,TensorFlow的eager模式也不是万能的。尽管你可以用tf.function注释将eager代码转换为静态图,但这并不是一个无缝过程(PyTorch的TorchScript也有类似问题)。tracing在根本上被限制了,重新解释Python代码本质上需要很大程度上重写Python编译器。当然,通过限制深度学习中用到的Python子集可以极大地简化这一范围。
在默认情况下启用eager模式时,TensorFlow强迫用户做出选择,要么为了易用性使用eager执行,这种做法需要为了部署而重写;要么彻底不用eager执行。PyTorch也面临相同的问题,但PyTorch可选择性加入的TorchScript似乎更加令人愉悦。