Quickstart | Установка | Учебник | Китайский
Быстрый старт | Установка) | Учебник | Английский
Jittor — это высокопроизводительный фреймворк для глубокого обучения, основанный на JIT-компиляции и мета-операторах. Вся система компилируется в реальном времени. В Jittor интегрированы мощные компиляторы и оптимизаторы операторов, что позволяет генерировать высокоэффективный код, специализированный для вашей модели. 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()}")
```python
# Пример: Определение модели и обучение
# Основы: Op, Var
# Мета-оператор: Реализация собственного сверточного слоя с помощью мета-оператора
Мы предоставляем некоторые jupyter notebooks для помощи в быстром начале работы с Jittor.
Jittor фреймворк имеет следующие требования к окружению:
Jittor фреймворк имеет следующие требования к окружению:| ОС | Процессор | Python | Компилятор | (Необязательно) Платформа GPU |
|--------------------------------------------------------|-------------------------------------------|--------|----------------|-------------------------------------------------------------|
| Linux
(Ubuntu, CentOS, Arch,
UOS, KylinOS, ...) | x86
x86_64
ARM
loongson | >= 3.7 | g++ >= 5.4 | Nvidia CUDA >= 10.0, cuDNN
or AMD ROCm >= 4.0
or Hygon DCU DTK >= 22.04 |
| macOS
(>= 10.14 Mojave) | intel
Apple Silicon | >= 3.7 | clang >= 8.0 | - |
| Windows 10 & 11 | x86_64 | >= 3.8 | - | Nvidia CUDA >= 10.2 cuDNN |Jittor предлагает три способа установки: pip, docker или ручная установка:
Jittor offers three ways to install: pip, docker, or manual.
Далее приведены команды установки для Ubuntu. Если вы используете другую операционную систему Linux (например, CentOS), убедитесь, что у вас установлены все необходимые зависимости (Python>=3.7, g++>=5.4) или воспользуйтесь установкой с помощью Docker, если вы уже установили компилятор и соответствующую версию Python, мы настоятельно рекомендуем вам использовать этот метод (если доступ к GitHub невозможен, вы можете скачать Jittor с главной страницы):
sudo apt install python3.7-dev libomp-dev
python3.7 -m pip install jittor
# or install from GitHub (latest version)
# python3.7 -m pip install git+https://github.com/Jittor/jittor.git
python3.7 -m jittor.test.test_example
Если тестирование прошло успешно, поздравляем, вы успешно установили Jittor.
Jittor автоматически ищет подходящий компилятор в пути, если вы хотите указать компилятор вручную, используйте переменные окружения cc_path
и nvcc_path
(необязательно).
Для установки дополнительных зависимостей на macOS используйте Homebrew.
Пожалуйста, сначала установите дополнительные зависимости с помощью Homebrew.
brew install libomp
Затем вы можете установить Jittor через pip и запустить пример.
python3.7 -m pip install jittor
python3.7 -m jittor.test.test_example
```В настоящее время на macOS jittor поддерживает только вычисления на CPU.
Текущая версия jittor поддерживает только CPU на macOS.
### Установка на Windows
### Установка на Windows
Для Windows подготовьте Python>=3.8, инструкции по установке приведены ниже (для установки с помощью conda требуются дополнительные команды):
Для Windows пользователи подготовьте Python>=3.8, инструкции по установке приведены ниже (для установки с помощью conda требуются дополнительные инструкции):
```bash
# проверьте версию Python (>=3.8)
python --version
python -m pip install jittor
# если используется conda
conda install pywin32
На Windows jittor автоматически обнаруживает и устанавливает CUDA, убедитесь, что ваш драйвер NVIDIA поддерживает CUDA 10.2 или выше, или вы можете вручную установить CUDA для jittor:
На Windows jittor автоматически обнаруживает и устанавливает CUDA, убедитесь, что ваш драйвер NVIDIA поддерживает CUDA 10.2 или выше, или вы можете вручную установить CUDA для jittor:
python -m jittor_utils.install_cuda
Мы предоставляем метод установки с помощью Docker, чтобы избавить вас от настройки окружения. Метод установки 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
```Для получения более подробных инструкций по установке Docker, вы можете обратиться к [руководству по установке Jittor с помощью Docker для Windows/Mac/Linux](https://cg.cs.tsinghua.edu.cn/jittor/tutorial/2020-5-15-00-00-docker/)
## Ручная установка
## Ручная установка
Мы покажем, как пошагово установить Jittor в Ubuntu 16.04, для других Linux-дистрибутивов могут использоваться похожие команды.
### Шаг 1: Выбор вашего компилятора для backend
```bash
# 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
Jittor требует версию Python >= 3.7.
sudo apt install python3.7 python3.7-dev
Целый фреймворк компилируется Just-in-time. Давайте установим jittor через pip
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 готов к использованию.
Использование CUDA в Jittor очень просто, достаточно установить переменную окружения nvcc_path
# замените эту переменную на путь к вашему nvcc
export nvcc_path="/usr/local/cuda/bin/nvcc"
# запустите простой тест CUDA
python3.7 -m jittor.test.test_cuda
```Если тест пройден, вы можете использовать Jittor с CUDA, установив флаг `use_cuda`.
```python
import jittor as jt
jt.flags.use_cuda = 1
Чтобы проверить целостность Jittor, вы можете запустить тест обучения Resnet18. Обратите внимание: в этом тесте требуется 6 ГБ памяти GPU.
python3.7 -m jittor.test.test_resnet
Если тесты не прошли, пожалуйста, сообщите об ошибках, и мы будем рады вашим вкладам ^_^
В разделе обучения мы кратко объясним основные концепции Jittor. В разделе учебника мы кратко объясним основные концепции Jittor.
Чтобы обучить вашу модель с помощью Jittor, вам нужно знать всего три основные концепции:
Сначала познакомимся с 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. Давайте попробуем несколько операций. Мы создаем Var a
и b
с помощью операции jt.float32
и складываем их. Вывод этих переменных показывает, что они имеют одинаковую форму и тип данных.```python
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))
Кроме того, все операторы, которые мы использовали в виде `jt.xxx(Var, ...)`, имеют сокращение `Var.xxx(...)`. Например:
```python
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, пожалуйста, проверьте ноутбуки ниже:
[2]: python/jittor/notebook/basics.src.md "основные понятия"
[3]: python/jittor/notebook/meta_op.src.md "мета-оператор"
[4]: python/jittor/notebook/custom_op.src.md "пользовательский Op"
[5]: python/jittor/notebook/profiler.src.md "профилирование"
Эти ноутбуки можно запустить на вашем компьютере с помощью `python3.7 -m jittor.notebook`.
## Вклад
Jittor еще молод. Он может содержать ошибки и проблемы. Пожалуйста, сообщите о них в нашей системе отслеживания ошибок. Вклады приветствуются. Кроме того, если у вас есть какие-либо идеи по поводу Jittor, пожалуйста, сообщите нам.
## Контакт
Официальный сайт: http://cg.cs.tsinghua.edu.cn/jittor/
Электронная почта: jittor@qq.com
Создать issue: https://github.com/Jittor/jittor/issues
QQ-группа: 761222083
<img src="https://cg.cs.tsinghua.edu.cn/jittor/images/news/2020-12-8-21-19-1_2_2/fig4.png" width="200"/>
## Команда
Jittor в настоящее время поддерживается [группой по компьютерной графике Тsinghua](https://cg.cs.tsinghua.edu.cn/). Если вы также интересуетесь Jittor и хотите его улучшить, пожалуйста, присоединяйтесь к нам!Jittor в настоящее время поддерживается [группой по компьютерной графике Tsinghua](https://cg.cs.tsinghua.edu.cn/). Если вы также интересуетесь Jittor и хотите его улучшить, пожалуйста, присоединяйтесь к нам!
## Цитирование
## Цитирование
@article{hu2020jittor, title={Jittor: новый фреймворк глубинного обучения с мета-операторами и унифицированным графическим выполнением}, 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 использует лицензию Apache 2.0, как указано в LICENSE.txt.
Как указано в LICENSE.txt, Jittor использует лицензию Apache 2.0.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )