jittor

jittor

高性能实时编译深度学习框架,集成多种先进模型库

Jittor是一个基于实时(JIT)编译和元操作符的高性能深度学习框架。它支持Python前端,CUDA和C++后端,能够生成针对不同模型的高效代码。Jittor提供了丰富的模型库,涵盖图像识别、检测、分割、生成、可微渲染、几何学习和强化学习等领域。安装方式多样,环境配置简便,并且包含详尽的教程和文档,帮助用户快速入门。

Jittor深度学习框架JIT编译Python高性能Github开源项目

Jittor: 即时编译 (JIT) 的深度学习框架

Jittor 标志

快速开始 | 安装 | 教程 | 简体中文

Jittor 是一个基于 JIT 编译和元操作符的高性能深度学习框架。整个框架和元操作符都是即时编译的。Jittor 集成了强大的操作符编译器和调优器,使我们能够为您的模型生成高性能代码。Jittor 还包含丰富的高性能模型库,包括:图像识别、检测、分割、生成、可微渲染、几何学习、强化学习等。

前端语言是 Python。在前端使用模块设计和动态图执行,这是深度学习框架接口中最受欢迎的设计。后端由高性能语言实现,如 CUDA、C++。

相关链接:

以下示例展示了如何一步一步地建模一个两层神经网络并从头开始训练,只需几行 Python 代码。

import jittor as jt from jittor import Module from jittor import nn import numpy as np 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): # 生成用于训练测试的随机数据 for i in range(n): x = np.random.rand(batch_size, 1) y = x*x yield jt.float32(x), jt.float32(y) learning_rate = 0.1 batch_size = 50 n = 1000 model = Model() optim = nn.SGD(model.parameters(), learning_rate) for i,(x,y) in enumerate(get_data(n)): pred_y = model(x) dy = pred_y - y loss = dy * dy loss_mean = loss.mean() optim.step(loss_mean) print(f"step {i}, loss = {loss_mean.data.sum()}")

内容

快速开始

我们提供了一些 jupyter 笔记本以帮助您快速开始使用 Jittor。

安装

Jittor 环境要求:

操作系统处理器Python编译器(可选) GPU 平台
Linux<br>(Ubuntu, CentOS, Arch, <br>UOS, KylinOS, ...)x86 <br>x86_64 <br>ARM <br>loongson>= 3.7g++ >=5.4Nvidia CUDA >= 10.0, cuDNN <br>AMD ROCm >= 4.0 <br>Hygon DCU DTK >= 22.04
macOS <br>(>= 10.14 Mojave)intel<br>Apple Silicon>= 3.7clang >= 8.0-
Windows 10 & 11x86_64>= 3.8-Nvidia CUDA >= 10.2 cuDNN

Jittor 提供三种安装方式:pip、docker 或手动。

Pip 安装

sudo apt install python3.7-dev libomp-dev python3.7 -m pip install jittor # 或从 github 安装最新版本 # python3.7 -m pip install git+https://github.com/Jittor/jittor.git python3.7 -m jittor.test.test_example

macOS 安装

请首先使用 homebrew 安装额外的依赖项。

brew install libomp

然后您可以通过 pip 安装 jittor 并运行示例。

python3.7 -m pip install jittor python3.7 -m jittor.test.test_example

目前 jittor 仅支持在 macOS 上使用 CPU。

Windows 安装

# 检查您的 Python 版本 (>=3.8) python --version python -m pip install jittor # 如果使用 conda conda install pywin32

在 Windows 上,jittor 会自动检测并安装 CUDA,请确保您的 NVIDIA 驱动程序支持 CUDA 10.2 或更高版本,或者您可以手动让 jittor 为您安装 CUDA:

python -m jittor_utils.install_cuda

Docker 安装

我们提供了一种 Docker 安装方法以避免您配置环境。Docker 安装方法如下:

# 仅 CPU (Linux)
docker run -it --network host jittor/jittor
# CPU 和 CUDA (Linux)
docker run -it --network host --gpus all jittor/jittor-cuda
# 仅 CPU (Mac 和 Windows)
docker run -it -p 8888:8888 jittor/jittor

手动安装

我们将展示如何在 Ubuntu 16.04 上一步步安装 Jittor,其他 Linux 发行版可能有类似的命令。

第一步:选择您的后端编译器

# g++ sudo apt install g++ build-essential libomp-dev # 或 clang++-8 wget -O - https://raw.githubusercontent.com/Jittor/jittor/master/script/install_llvm.sh > /tmp/llvm.sh bash /tmp/llvm.sh 8

第二步:安装 Python 和 python-dev

Jittor 需要 Python 版本 >= 3.7。

sudo apt install python3.7 python3.7-dev

步骤3:运行Jittor

整个框架是即时编译的。让我们通过pip安装jittor

git clone https://github.com/Jittor/jittor.git sudo pip3.7 install ./jittor export cc_path="clang++-8" # 如果使用其他编译器,则更改cc_path # export cc_path="g++" # export cc_path="icc" # 运行一个简单的测试 python3.7 -m jittor.test.test_example

如果测试通过,说明你的Jittor已经准备好了。

可选步骤4:启用CUDA

在Jittor中使用CUDA非常简单,只需设置环境变量nvcc_path

# 将此变量替换为你的nvcc位置 export nvcc_path="/usr/local/cuda/bin/nvcc" # 运行一个简单的cuda测试 python3.7 -m jittor.test.test_cuda

如果测试通过,你可以通过设置use_cuda标志来在Jittor中使用CUDA。

import jittor as jt jt.flags.use_cuda = 1

可选步骤5:测试Resnet18训练

为了检查Jittor的完整性,你可以运行Resnet18训练测试。注意:此测试需要6G GPU RAM。

python3.7 -m jittor.test.test_resnet

如果这些测试未通过,请向我们报告错误,并随时贡献代码 ^_^

教程

在教程部分,我们将简要解释Jittor的基本概念。

要使用Jittor训练你的模型,你只需了解三个主要概念:

  • Var:jittor的基本数据类型
  • 操作:Jittor的操作与numpy相似

Var

首先,让我们从Var开始。Var是jittor的基本数据类型。Jittor中的计算过程是异步的,以进行优化。如果你想访问数据,可以使用Var.data进行同步数据访问。

import jittor as jt a = jt.float32([1,2,3]) print (a) print (a.data) # 输出:float32[3,] # 输出:[ 1. 2. 3.]

我们还可以给变量命名。

a.name('a') print(a.name()) # 输出:a

操作

Jittor的操作与numpy相似。让我们尝试一些操作。我们通过操作jt.float32创建了Var ab,并将它们相加。打印这些变量显示它们具有相同的形状和数据类型。

import jittor as jt a = jt.float32([1,2,3]) b = jt.float32([4,5,6]) c = a*b print(a,b,c) print(type(a), type(b), type(c)) # 输出:float32[3,] float32[3,] float32[3,] # 输出:<class 'jittor_core.Var'> <class 'jittor_core.Var'> <class 'jittor_core.Var'>

此外,我们使用的所有操作jt.xxx(Var, ...)都有别名Var.xxx(...)。例如:

c.max() # jt.max(c)的别名 c.add(a) # jt.add(c, a)的别名 c.min(keepdims=True) # jt.min(c, keepdims=True)的别名

如果你想知道Jittor支持的所有操作,请尝试help(jt.ops)。所有你在jt.ops.xxx中找到的操作,都可以通过别名jt.xxx使用。

help(jt.ops) # 输出: # abs(x: core.Var) -> core.Var # add(x: core.Var, y: core.Var) -> core.Var # array(data: array) -> core.Var # binary(x: core.Var, y: core.Var, op: str) -> core.Var # ......

更多

如果你想了解更多关于Jittor的信息,请查看以下笔记本:

你可以在自己的电脑上通过python3.7 -m jittor.notebook启动这些笔记本。

贡献

Jittor还很年轻,可能包含错误和问题。请在我们的错误跟踪系统中报告它们。欢迎贡献。此外,如果你对Jittor有任何想法,请告诉我们。

你可以通过以下方式帮助Jittor:

  • 在你的论文中引用Jittor
  • 向你的朋友推荐Jittor
  • 贡献代码
  • 贡献教程和文档
  • 提交问题
  • 回答jittor相关问题
  • 点亮星星
  • 关注jittor
  • ......

联系我们

网站: http://cg.cs.tsinghua.edu.cn/jittor/

邮箱: jittor@qq.com

提交问题: https://github.com/Jittor/jittor/issues

QQ群: 836860279

<img src="https://yellow-cdn.veclightyear.com/35dd4d3f/7ab112c2-ed2c-48be-a1ee-ac87d5d7c0cc.png" width="200"/>

团队

Jittor目前由Tsinghua CSCG Group维护。如果你对Jittor感兴趣并想改进它,请加入我们!

引用

@article{hu2020jittor,
  title={Jittor: a novel deep learning framework with meta-operators and unified graph execution},
  author={Hu, Shi-Min and Liang, Dun and Yang, Guo-Ye and Yang, Guo-Wei and Zhou, Wen-Yang},
  journal={Science China Information Sciences},
  volume={63},
  number={222103},
  pages={1--21},
  year={2020}
}

许可证

Jittor按照LICENSE.txt文件中的Apache 2.0许可进行许可。

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多