关注上方深度学习技术前沿”,选择“星标公众号”

资源干货,第一时间送达!

来源:机器之心@微信公众号

继 Theano、Caffe 之后,又一个由高校主导的深度学习框架开源了,而且还是国产。

深度学习框架越来越多,主导的团队也从高校研究机构渐渐转向了科技巨头。但是,学界在这一领域的力量不容忽视。今日。清华大学开发了一个名为计图(Jittor)的深度学习框架。这一框架有望为深度学习社区提供新的方案,也能够推动深度学习框架国产化的进程。

据悉,计图(Jittor:Just in Time)是一个采用元算子表达神经网络计算单元、完全基于动态编译(Just-in-Time)的深度学习框架,其主要特性为元算子和统一计算图。

据官网介绍说:「研究团队将神经网络所需的基本算子定义为元算子」,元算子非常底层,通过相互融合可以完成复杂的深度学习计算,体现出了易于使用的特点。并且研发团队表示,采用元算子的 Jittor 已超越 Numpy,能够实现更复杂更高效的操作。

而另一层面,统一计算图则是融合了静态计算图和动态计算图的诸多优点,在易于使用的同时,提供高性能的优化。基于元算子开发的深度学习模型,可以被计图实时地自动优化并且运行在指定的硬件上,如 CPU、GPU。

目前 Jittor 已开源,用户可以采用 pip 等方法下载使用。

Jittor 官网:https://cg.cs.tsinghua.edu.cn/jittor/

项目地址:https://github.com/Jittor/jittor

即时、易用、可定制:实现和优化分离的框架

据官网介绍,Jittor 在设计时秉持易用、灵活、即时的设计理念:

  • 易用且可定制:只需要数行代码,就可定义新的算子和模型。

  • 实现与优化分离:可以通过前端接口专注于实现,而实现自动被后端优化。

  • 所有都是即时的:Jittor 的所有代码都是即时编译并且运行的,包括 Jittor 本身。用户可以随时对 Jittor 的所有代码进行修改,并且动态运行。

Jittor 作为全新的深度学习框架,有几大新特性值得关注。首先,Jittor 采用了元算子的概念,将各种基本计算定义为元算子,并通过结合不同元算子,实现深度学习中的各项算子功能。

元算子融合。

其次,在算子的设置上,团队将元算子的反向传播进行了闭包,即元算子的反向传播也是元算子。这样避免了重复开发。此外,还支持计算任意高阶导数。

高阶导数及反向传播闭包。

然后,在编程语言上,Jittor 采用了灵活而易用的 Python。用户可以使用它,编写元算子计算的 Python 代码,然后 Jittor

将其动态编译为 C++,实现高性能。

算子动态编译。

更重要的是,Jittor 内置了优化编译遍(complier pass)功能,和 LLVM 兼容。优化过程会根据运行的硬件而定,以下为已支持的优化编译遍。

自动优化。

在内存管理上,CPU 和 GPU 内存统一管理。GPU 内存不够的时候会调用 GPU。

统一内存管理。

而在接口方面,Jittor 同时提供了同步和异步接口,切换不会造成性能损失。从而带来了易用性和高效率。

高效同步异步接口。

最后值得注意的是,为了帮助 Jittor 的发展,并吸收优秀框架的特性。Jittor 采用了和 PyTorch 相似的模块化接口,并有辅助转换脚本,还有和 PyTorch 一样的 Numpy+pickle 协议,使得两者的模型可以互相加载和使用。

模型迁移。

有了如此众多的特性,估计用来写模型会有非常好的体验。此外,Jittor 使用 Python 和 C ++编写,也支持 GPU 与 CUDA。

测评结果

Jittor 的性能如何,官方也提供了测评结果进行参考。目前 ResNet、VGG、SSD、DeepLab、LSGAN 等多个网络模型已经在 Jittor 平台实现,可供用户使用。与同类型框架相比,Jittor 在收敛精度一致情况下,推理速度取得了 10%-50% 的性能提升。

示例代码

Jittor 前端语言为 Python。前端使用模块化的设计,类似于 PyTorch,Keras,后端则使用高性能语言编写,如 CUDA,C++。Jittor 官网目前已提供了示例代码,我们可以来分析一下。

下面的代码演示了如何一步一步使用 Python 代码,从头对一个双层神经网络建模。

import jittor as jt
from jittor import Module
from jittor import nn

class Model(Module):
   def __init__(self):
       self.layer1 = nn.Linear(1, 10)
       self.relu = nn.Relu()
       self.layer2 = nn.Linear(10, 1)
   def execute (self,x) :
       x = self.layer1(x)
       x = self.relu(x)
       x = self.layer2(x)
       return x

def get_data(n): # generate random data for training test.
   for i in range(n):
       x = np.random.rand(batch_size, 1)
       y = x*x
       yield jt.float32(x), jt.float32(y)

model = Model()
learning_rate = 0.1
optim = nn.SGD(model.parameters(), learning_rate)

for i,(x,y) in enumerate(get_data(n)):
   pred_y = model(x)
   loss = ((pred_y - y)**2)
   loss_mean = loss.mean()
   optim.step (loss_mean)
   print(f"step {i}, loss = {loss_mean.data.sum()}")

以上为实现一个简单的全连接神经网络的代码。可以看到,类似于 PyTorch,只需要导入包,采用类继承的方式定义模型、数据处理(分批等)方式,并设置训练循环即可。从上手难度来看,熟悉 PyTorch 的用户可以直接上手,甚至没有因为变量名不同而带来影响。

研究团队

据官网介绍,Jittor 的开发团队来自清华大学计算机系的图形学实验室,实验室负责人为胡事民教授。

该实验室成立于 1998 年 3 月,2007 年发展成为清华大学可视媒体研究中心,2010 年获批成为北京市工程技术研究中心,同年和腾讯公司合作成立清华-腾讯互联网创新技术联合实验室,并于 2018 年,成立北京信息科学与技术国家研究中心下的可视媒体智能计算团队。目前有教授 2 名、副教授 3 名、助理研究员 1 名、博士后 4 名和研究生 50 多名。

Jittor 项目的主要研发主力为实验室的梁盾、杨国烨、杨国炜和周文洋等等博士生,此外该项目也得到了清华-腾讯联合实验室的资助和支持。

重磅!深度学习技术前沿-微信群已成立

扫码添加群助手可申请加入 深度学习技术前沿 微信群,旨在交流深度学习方面的学习、科研、工程项目等内容,并且还会在群中分享求职内推资料。后续还会根据大家的研究方向细分技术交流群。

一定要备注:研究方向+学校/公司+姓名(如图像分割+浙大+李四),按照格式备注,可更快被通过且邀请进群。

???? 长按识别,即可加群

???? 长按识别,即可关注

清华开源Jittor:首个国内高校自研深度学习框架,一键转换PyTorch相关推荐

  1. 清华开源 Jittor:首个国内高校自研深度学习框架,一键转换 PyTorch

    点击上方"视学算法",马上关注 真爱,请设置"星标"或点个"在看" 来源 | 机器之心 继 Theano.Caffe 之后,又一个由高校主导 ...

  2. 今日上午,清华大学发布中国首个高校自研深度学习训练框架—计图Jittor

    在百度狂推PaddlePaddle框架,以及旷视计划本月25日发布自研深度学习训练框架MegEngine之际,清华大学突然发布首个中国高校自研深度学习框架Jittor,中文名为计图. 官网链接 htt ...

  3. 清华自研深度学习框架「计图」开源!多项任务性能超过PyTorch

    2020-03-20 11:42:07 乾明 发自 凹非寺  量子位 报道 | 公众号 QbitAI AI框架,又来重磅中国玩家. 刚刚,清华自研的深度学习框架,正式对外开源."贵系&quo ...

  4. 【OpenI开源项目推荐-GammaGL】支持国内外主流深度学习框架的图神经网络算法库

    今天,OpenI要为大家推荐一款入驻社区的开源项目[GammaGL],它是由北邮GAMMA LAB 与鹏城实验室最新开源的图神经网络算法库Gamma Graph Library (GammaGL),支 ...

  5. 盘点国内那些深度学习框架:清华计图Jittor、腾讯优图NCNN、百度飞桨PaddlePaddle、阿里X-DeepLearning

    1.清华计图Jittor 清华大学开发了一个名为计图(Jittor)的深度学习框架. 计图(Jittor:Just in Time)是一个采用元算子表达神经网络计算单元.完全基于动态编译(Just-i ...

  6. 大佬评清华Jittor,这是怎样一个深度学习框架?

    点击上方"机器学习与生成对抗网络",关注"星标" 获取有趣.好玩的前沿干货! 如何评价清华大学发布的自研深度学习框架-计图(Jittor)? 2020年3月20 ...

  7. 刚刚,旷视开源深度学习框架「天元」:Brain++内核,研发和落地都在用;孙剑:COCO三连冠背后的秘密武器...

    乾明 发自 凹非寺  量子位 报道 | 公众号 QbitAI 耗费资源打造优化6年,迭代到8.0版本,旷视技术体系的关键支柱,现在正式对外开源. 刚刚,深度学习驱动之下最早创业的中国AI独角兽旷视,宣 ...

  8. 旷视:深度学习框架开源

    天元MegEngine 深度学习框架正式开源 Brain++ 新一代AI生产力平台 旷视Brain++是由旷视研究院自主研发的新一代 AI 生产力平台,致力于帮助企业和开发者提升AI生产效率.规范生产 ...

  9. pythonic的典故_旷视开源深度学习框架「天元」,提供人人可用的AI“生产力工具”【星特写】...

    原标题:旷视开源深度学习框架「天元」,提供人人可用的AI"生产力工具"[星特写] 今日,旷视宣布开源自研深度学习框架MegEngine(Brain++核心组件之一),中文名天元-- ...

最新文章

  1. 分布式任务队列 Celery — 实践
  2. linux x window system下载,为Ubuntu 添加 KDE X WINDOW SYSTEM
  3. java的全栈,Java全栈工程师
  4. 02、Kubernetes 入门(上)-重新认识Docker
  5. DM达梦创建表空间用户
  6. ajax success function_Django:AJAX(二)
  7. c++中recvfrom函数_通俗易懂:快速理解网络编程中5种IO模型
  8. 设计模式精髓—封装变化
  9. ld: symbol(s) not found for architecture arm64
  10. MongoDB安装、配置与示例
  11. Ffmpeg视频压制的基础知识
  12. 电子海图开发第四十七篇 GPS数据解析(共一百篇)
  13. 吐血整理 python最全习题100道(含答案)持续更新题目,建议收藏!
  14. 前端涉及的PS简单介绍
  15. AI插画师:生成对抗网络
  16. Android第三方支付
  17. 宠物服务平台APP开发详情
  18. 企业智能化管理固定资产的新思路
  19. 企业品牌私域化运营,私域流量只是起步
  20. 苹果cms10的一次尝试发现了苹果cms10被挂马极有可能是苹果cms作者故意的js漏洞或后门导致

热门文章

  1. windows server 2008下搭建DHCP服务器
  2. 6425C-Lab11 配置DNS
  3. 浅谈死链接和错误链接,如何防范死链接发生
  4. 为你的网站使用paypal
  5. 古朴西安:乘汽船去机场
  6. python 运算太慢怎么办_python:网络安全攻击与防御的工具
  7. 苹果无线耳机使用方法_安卓党可以使用 AirPods 吗?实测结果.....
  8. Java基类共同属性设置_java – 你有一个Hibernate实体的基类吗?
  9. Python 列表(List) 取区间元素 [:] 用法
  10. python类的继承 被继承类放在类后面的括号中