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许可进行许可。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

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

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多