fast.ai 面向 Pytorch 的深度学习新书开源

fast.ai 的创始人、前 Kaggle 首席科学家 Jeremy Howard 教授在 Github 上开源了和 Sylvain Gugger 合著的新书《Deep Learning for Coders with fastai and PyTorch》的初稿。全书草稿已公布 22 章,通过这份它你将学到:

  • 如何在计算机视觉、自然语言处理、推荐系统、表格和时间序列数据分析中创建最先进的模型
  • 如何使用全新的 fastai v2 库和 PyTorch
  • 深度学习的基础:什么是神经网络,它们是如何训练的,以及它们如何进行预测
  • 为什么以及如何使用深度学习模型,以及如何使用这些知识来提高模型的准确性、速度和可靠性
  • 如何将你的模型转换为实际的 Web 应用程序,以及在模型出错时如何调试模型。
  • 最新的深度学习技术,尝试真正有意义的实践
  • 如何阅读深度学习研究论文
  • 如何实现深度学习算法从无到有

不过该课程并非面向零基础人士,虽说不要求你处理大量数据,也不需要你具备大学水平的数学能力,但是你至少需要有一年的编程经验。

GitHub地址项目 GitHub 地址

开源人脸口罩检测模型

『山川异域,风月同天』—— 新冠肺炎疫情牵动着举国上下的心,包括跨象乘云™ 在内,众多高科技企业除了向灾区捐赠物资,配合疫情防控工作,延期复工 / 远程办公的同时,也在积极探索如何利用大数据、新一代人工智能等新技术为『战疫』助力。

近日,AIZOO 开源了 PyTorchTensorFlowMXNetKerasCaffe 等五大主流深度学习框架的人脸口罩检测模型和代码。同时,对于学习《多框架人工智能开发》课程的人工智能专业学生而言,是非常好的项目锻炼。

GitHub地址项目 GitHub 地址

三维计算机视觉库:PyTorch3D 开源

3D 计算机视觉是一个重要的课题,如何选择合适的框架进行计算,使得处理效果更好、更高效?近日,FaceBook 博客更新了一篇新的文章,介绍了团队开发的针对 3D 计算机视觉的框架 —— PyTorch3D。这是一个基于 PyTorch 的库,在 3D 建模,渲染等多方面处理操作上有更好的表现。

PyTorch3D
PyTorch3D

GitHub地址项目 GitHub 地址

OpenAI 采用 PyTorch 作为其深度学习框架标准

OpenAI 发布最新消息,正在 PyTorch标准化自家深度学习框架。与此同时,OpenAI 发布了一个 PyTorch 版本的开源教育资源,能够让人们更容易学习深度强化学习。不少人认为,OpneAI 的行为是正常选择的确,大量研究人员从 TensorFlow 转投 PyTorch 已成趋势。

AWS 开源高性能模型生成器:AutoGluon

作为自动化机器学习平台的其中一员,基于 MXNet 深度学习框架(支持 Pytorch)的 AWS AutoGluon 于 1 月 9 日正式发布,在这之前,AutoGluon 已经在 Github 上悄悄上线一个月了 —— 新一代人工智能实验室的科研人员,以及 AI 开发者们,均可以通过它构建包含图像、文本或表格数据集的机器学习应用程序,并且不需要进行任何手动测试。

AutoGluon 为开发人员自动化了许多决策。通常,像超参数调优这样的任务是需要手动执行的,这要求科学家预测超参数 —— 表示在构建 AI 模型时所做的选择 —— 将如何影响模型训练。另一个通常被称为神经架构搜索,这是一个需要人工监督的复杂工程,在某种程度上,开发人员必须为他们各自的模型确定最佳设计。AutoGluon 可以开箱即用地识别用于表格预测、图像和文本分类以及对象检测的模型,它还提供了一个 API,更有经验的开发人员可以利用该 API 进一步改进模型的预测性能。

Amazon’s AutoGluon helps developers deploy deep learning models with just a few lines of code
Amazon’s AutoGluon helps developers deploy deep learning models with just a few lines of code

开发人员无需在设计深度学习模型时手动尝试必须做出的数百种选择,只需简单地指定让训练好的模型就绪的时间即可。作为响应,AutoGluon 可以利用可用的计算资源在其分配的运行时间内找到最强大的模型。AutoGluon 可以通过自动调整默认范围内的选择来生成仅需三行代码的模型,而这些默认范围在已知范围内可以很好地完成给定任务。开发人员只需指定他们何时准备好训练后的模型,AutoGluon 就会利用可用的计算资源来在分配的 runtime 中找到最强大的模型。

同时,AutoGluon 官方网站为开发人员提供了许多工程案例教程,可利用它们对表格,文本和图像数据进行深度学习(诸如涵盖分类 / 回归等基本任务以及对象检测等更高级的任务)。无疑对本科、研究生人工智能专业建设,提供了重要的项目案例教育资源补充。

GitHub地址项目 GitHub 地址

最佳 Pytorch 科研项目架构模板实践

此前,跨象乘云™ 发布了《最佳TensorFlow科研项目架构模板实践》,TensorFlow 是帮助深度学习新方法走向实现的强大工具。它为大多数深度学习领域中使用的常用语言提供了大量应用程序接口。对于开发者和研究人员来说,在开启新的项目前首先面临的问题是:如何构建一个简单明了的结构。所以,经过大量的实践和对 Tensorflow 项目贡献,整理了一个结合简洁,具备文件夹结构化组织,并且面向对象设计的 Tensorflow 项目模板最佳实践 —— 为高校深度学习与新一代人工智能科研实验室建设以及科研教学平台提供良好的基础支撑。

另一方面,自从 PyTorch 1.0 发布之后,越来越多的人选择使用 PyTorch,今天给大家介绍一个 Github 项目,作者通过自己使用 PyTorch 的实际工程经验,总结出了一套非常有用的使用 PyTorch 的最佳实践,涉及到使用 PyTorch 的方方面面。

本文总结了使用 PyTorch 框架进行深度学习的一年多经验中的最佳实践。请注意,我们分享的经验大多来自研究和创业的视角。这是一个开放的项目,欢迎其他合作者编辑和改进文档。该文档有三个主要部分。首先,简要回顾一下 Python 中的最佳实践,然后介绍一些使用 PyTorch 的技巧和建议。最后,我们分享了一些使用其他框架的见解和经验,这些框架通常对我们改进工作流有帮助。

GitHub地址项目 GitHub 地址

零基础入门PyTorch深度学习

Pytorch 是 Torch 的 Python 版本,是由 Facebook 开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(Tensor )库,在机器学习和其他数学密集型应用有广泛应用。与 Tensorflow 的静态计算图不同,Pytorch 的计算图是动态的,可以根据计算需要实时改变计算图。

Vipul Vaibhaw 在 Github 开源了一份关于 Pytorch 深度学习的书册,《First steps towards Deep Learning with PyTorch》,这是一本关于深度学习的开源书籍。这本书应该是非数学的,迎合了那些没有深度学习经验,数学知识和兴趣很少的读者。这本书旨在帮助读者迈出深度学习的『第一步』。

主要内容覆盖了:

  1. 理解人工神经网络
  2. PyTorch 介绍
  3. 如何让计算机看见?
  4. 如何让计算机记忆?
  5. 下一步学习

GitHub地址项目 GitHub 地址

《动手学深度学习》PyTorch 版

我们知道,作为 MXNet 的作者之一,李沐的这本《动手学深度学习》也是使用 MXNet 框架写成的。但是很多入坑机器学习的萌新们,使用的却是 PyTorch。如果有教材对应的 PyTorch 实现代码就更好了!今天就给大家带来这本书的 PyTorch 实现源码。最近,来自印度理工学院的数据科学小组,把《动手学深度学习》从 MXNet 『翻译』成了 PyTorch,经过 3 个月的努力,这个项目已经基本完成,并登上了 GitHub 热榜。

d2l-pytorch
d2l-pytorch

其中,每一小节都是可以运行的 Jupyter 记事本,你可以自由修改代码和超参数来获取及时反馈,从而积累深度学习的实战经验。

GitHub地址项目 GitHub 地址

TensorFlow VS. PyTorch V2

此前,跨象乘云™ 发布过《TensorFlow VS. PyTorch》 —— 谷歌的 Tensorflow 与 Facebook 的 PyTorch 一直是颇受社区欢迎的两种深度学习框架。那么究竟哪种框架最适宜自己手边的深度学习项目呢?本文作者从这两种框架各自的功能效果、优缺点以及安装、版本更新等诸多方面给出了自己的建议。如果你在读这篇文章,那么你可能已经开始了自己的深度学习之旅。如果你对这一领域还不是很熟悉,那么简单来说,深度学习使用了「人工神经网络」,这是一种类似大脑的特殊架构,这个领域的发展目标是开发出能解决真实世界问题的类人计算机。为了帮助开发这些架构,谷歌、Facebook 和 Uber 等科技巨头已经为 Python 深度学习环境发布了多款框架,这让人们可以更轻松地学习、构建和训练不同类型的神经网络。本文将详细介绍和比较两种流行的框架: TensorFlow 与 PyTorch。

谷歌的 TensorFlow

TensorFlow 是谷歌的开发者创造的一款开源的深度学习框架,于 2015 年发布。官方研究发布于论文《TensorFlow:异构分布式系统上的大规模机器学习》。TensorFlow 现已被公司、企业与创业公司广泛用于自动化工作任务和开发新系统,其在分布式训练支持、可扩展的生产和部署选项、多种设备(比如安卓)支持方面备受好评。

Facebook 的 PyTorch

PyTorch 是最新的深度学习框架之一,由 Facebook 的团队开发,并于 2017 年在 GitHub 上开源。有关其开发的更多信息请参阅论文《PyTorch 中的自动微分》。PyTorch 很简洁、易于使用、支持动态计算图而且内存使用很高效,因此越来越受欢迎。接下来还会更详细地介绍。

我们可以用 TensorFlow 和 PyTorch 构建什么?

神经网络起初是被用于解决手写数字识别或用相机识别汽车注册车牌等简单的分类问题。但随着近来框架的发展以及英伟达高计算性能图形处理单元(GPU)的进步,我们可以在 TB 级的数据上训练神经网络并求解远远更加复杂的问题。一个值得提及的成就是在 TensorFlow 和 PyTorch 中实现的卷积神经网络在 ImageNet 上都达到了当前最佳的表现。训练后的模型可以用在不同的应用中,比如目标检测、图像语义分割等等。

尽管神经网络架构可以基于任何框架实现,但结果却并不一样。训练过程有大量参数都与框架息息相关。举个例子,如果你在 PyTorch 上训练一个数据集,那么你可以使用 GPU 来增强其训练过程,因为它们运行在 CUDA(一种 C++ 后端)上。TensorFlow 也能使用 GPU,但它使用的是自己内置的 GPU 加速。因此,根据你所选框架的不同,训练模型的时间也总是各不相同。

TensorFlow 顶级项目

  • Magenta:一个探索将机器学习用作创造过程的工具的开源研究项目
  • Sonnet:这是一个基于 TensorFlow 的软件库,可用于构建复杂的神经网络
  • Ludwig:这是一个无需写代码就能训练和测试深度学习模型的工具箱

PyTorch 顶级项目

  • CheXNet:使用深度学习来分析胸部 X 光照片,能实现放射科医生水平的肺炎监测
  • PYRO:这是一种用 Python 编写的通用概率编程语言(PPL),后端由 PyTorch 支持
  • Horizon:一个用于应用强化学习(Applied RL)的平台

这些只是基于 TensorFlow 和 PyTorch 构建的少量框架和项目。你能在 TensorFlow 和 PyTorch 的 GitHub 和官网上找到更多。

PyTorch 和 TensorFlow 对比

PyTorch 和 TensorFlow 的关键差异是它们执行代码的方式。这两个框架都基于基础数据类型张量(tensor)而工作。你可以将张量看作是下图所示的多维数组。

多维数组
多维数组

机制:动态图定义与静态图定义

TensorFlow 框架由两个核心构建模块组成:

  • 一个用于定义计算图以及在各种不同硬件上执行这些图的运行时间的软件库。
  • 一个具有许多优点的计算图(后面很快就会介绍这些优点)。

计算图是一种将计算描述成有向图的抽象方式。图是一种由节点(顶点)和边构成的数据结构,是由有向的边成对连接的顶点的集合。

当你在 TensorFlow 中运行代码时,计算图是以静态方式定义的。与外部世界的所有通信都是通过 tf.Sessionobject 和 tf.Placeholder 执行,它们是在运行时会被外部数据替换的张量。例如,看看以下代码段:

近期 Keras 被合并到了 TensorFlow 库中,这是一个使用 TensorFlow 作为后端的神经网络框架。从那时起,在 TensorFlow 中声明层的句法就与 Keras 的句法类似了。首先,我们声明变量并将其分配给我们将要声明的架构类型,这里的例子是一个 Sequential() 架构。

接下来,我们使用 model.add() 方法以序列方式直接添加层。层的类型可以从 tf.layers 导入,如下代码片段所示:

TensorFlow 和 PyTorch 的优缺点

TensorFlow 和 PyTorch 各有其优缺点。

TensorFlow 的优点:

  • 简单的内置高级 API
  • 使用 TensorBoard 可视化训练
  • 通过 TensorFlow serving 容易实现生产部署
  • 很容易的移动平台支持
  • 开源
  • 良好的文档和社区支持

TensorFlow 的缺点:

  • 静态图
  • 调试方法
  • 难以快速修改

PyTorch 的优点

  • 类 Python 的代码
  • 动态图
  • 轻松快速的编辑
  • 良好的文档和社区支持
  • 开源
  • 很多项目都使用 PyTorch

PyTorch 的缺点:

  • 可视化需要第三方
  • 生产部署需要 API 服务器

TensorFlow 还是 PyTorch?

PyTorch 和 TensorFlow 近期都发布了新版本:PyTorch 1.0(首个稳定版)和 TensorFlow 2.0(beta 测试版)。这两个版本都有重大的更新和新功能,让训练过程更高效、流畅和强大。

如果你要在自己的机器上安装这些框架的最新版,你可以用源代码 build 或通过 pip 安装。

TensorFlow 是一种非常强大和成熟的深度学习库,具有很强的可视化功能和多个用于高级模型开发的选项。它有面向生产部署的选项,并且支持移动平台。另一方面,PyTorch 框架还很年轻,拥有更强的社区动员,而且它对 Python 友好。

建议是:如果你想更快速地开发和构建 AI 相关产品,TensorFlow 是很好的选择。建议研究型开发者使用 PyTorch,因为它支持快速和动态的训练。

Pytorch 图神经网络(GNN)实战推荐

一、资源简介

最近以来图神经网络 (GNN) 在各个领域越来越受到欢迎,包括社交网络、知识图谱、推荐系统,甚至生命科学。GNN 在对图形中节点间的依赖关系进行建模方面能力强大,使得图分析相关的研究领域取得了突破性进展。今天给大家推荐一篇关于 Pytorch 实战图神经网络的笔记,图神经网络在最近的学术界和工业界都十分的火热,非常值得一学!

PyTorch
PyTorch

PyTorch 是什么?

PyTorch 是一个基于 Python 的科学计算工具包,它主要面向两种场景:

  1. 用于替代 NumPy ,可以使用 GPU 的计算力
  2. 一种深度学习研究平台,可以提供最大的灵活性和速度

原作者: Steeve Huang
网页链接:http://t.cn/AiKsApEM

二、主要内容

在本文中,作者将使用 PyTorch 和 PyTorch Geometry (PyG) ,这是一个构建在 PyTorch 之上的图形神经网络框架,运行速度非常快。它有多快?与另一个流行的图神经网络库 DGL 相比,它的训练时间最多快80% !除了其惊人的速度,PyG 还提供了一组在各种论文中都有说明的 GNN 模型。因此,用 PyG 重做实验是非常方便的。由于 PyG 在速度和方便方面的优势,毫无疑问,它是最受欢迎和广泛使用的 GNN 库之一。

作者主要是用 PyTorch 和 PyG 做了图神经网络的实验,更多相关,请查阅原资料~

Example graph
Example graph
Example graph2
Example graph2

三、资源分享

同时为了方便大家,我们把最新 PDF 打包好了,可以直接下载 ——

Hands on Graph Neural Networks with PyTorch & PyTorch Geometric