1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-jittor

Клонировать/Скачать
README.src.md 21 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 24.05.2025 06:50 2440e13

Jittor: фреймворк для глубокого обучения с использованием JIT-компиляции

Jittor: фреймворк для глубокого обучения с использованием JIT-компиляции

Jittor Логотип

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.

  • [Пример: Определение модели и обучение][1]
  • [Основы: Op, Var][2]
  • [Мета-оператор: Реализация собственного сверточного слоя с помощью мета-оператора][3]

Установка

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.

Установка с помощью pip

Далее приведены команды установки для 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

Для установки дополнительных зависимостей на 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 следующий:

Мы предоставляем метод установки с помощью 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

Шаг 2: Установка Python и python-dev

Jittor требует версию Python >= 3.7.

sudo apt install python3.7 python3.7-dev

Шаг 3: Запуск Jittor

Целый фреймворк компилируется 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 готов к использованию.

Необязательный шаг 4: Включение CUDA

Использование 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

Необязательный шаг 5: Тестирование обучения Resnet18

Чтобы проверить целостность Jittor, вы можете запустить тест обучения Resnet18. Обратите внимание: в этом тесте требуется 6 ГБ памяти GPU.

python3.7 -m jittor.test.test_resnet

Если тесты не прошли, пожалуйста, сообщите об ошибках, и мы будем рады вашим вкладам ^_^

Урок

Обучение

В разделе обучения мы кратко объясним основные концепции Jittor. В разделе учебника мы кратко объясним основные концепции Jittor.

Чтобы обучить вашу модель с помощью Jittor, вам нужно знать всего три основные концепции:

  • Var: базовый тип данных Jittor
  • Operations: операции 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

Operations

Операции

Операции 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))

Вывод: float32[3,] float32[3,] float32[3,]

Вывод: <class 'jittor_core.Var'> <class 'jittor_core.Var'> <class 'jittor_core.Var'>


Кроме того, все операторы, которые мы использовали в виде `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, пожалуйста, проверьте ноутбуки ниже:

  • Быстрый старт
    • [Пример: Определение модели и обучение][1]
    • [Основные понятия: Op, Var][2]
    • [Мета-оператор: Реализация собственного сверточного слоя с помощью мета-оператора][3]
  • Продвинутое использование
    • [Пользовательский Op: написание оператора с использованием C++ и CUDA и JIT-компиляция][4]
    • [Профилирование: профилирование вашей модели][5]
    • Jtune: Инструмент для настройки производительности
[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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-jittor.git
git@api.gitlife.ru:oschina-mirror/mirrors-jittor.git
oschina-mirror
mirrors-jittor
mirrors-jittor
master