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

OSCHINA-MIRROR/mirrors-lingvo

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Lingvo

PyPI Python

Documentation

License

Что это такое?

Lingvo — это фреймворк для построения нейронных сетей в Tensorflow, особенно моделей последовательностей.

Список публикаций с использованием Lingvo можно найти здесь.

Содержание

  • Выпуски (#Releases)
    • Основные критические изменения (#Major breaking changes)
  • Быстрый старт (#Quick start)
    • Установка (#Installation)
    • Запуск модели MNIST для изображений (#Running the MNIST image model)
    • Запуск модели машинного перевода (#Running the machine translation model)
    • Запуск гигантской языковой модели на основе GShard трансформатора (#Running the GShard transformer based giant language model)
    • Запуск 3D модели обнаружения объектов (#Running the 3d object detection model)
  • Модели (#Models)
    • Автоматическое распознавание речи (#Automatic Speech Recognition)
    • Автомобиль (#Car)
    • Изображение (#Image)
    • Языковое моделирование (#Language Modelling)
    • Машинный перевод (#Machine Translation)
  • Ссылки (#References)
  • Лицензия (#License)

Выпуски

Версия PyPI Коммит
0.12.4 --
0.11.0 6fae10077756f54beacd5c454959f20b33fd65e2
0.10.0 075fd1d88fa6f92681f58a2383264337d0e737ee
0.9.1 c1124c5aa7af13d2dd2b6d43293c8ca6d022b008
0.9.0 f826e99803d1b51dccbbbed1ef857ba48a2bbefe
Старые выпуски

Версия PyPI Коммит
0.8.2 93e123c6788e934e6b7b1fd85770371becf1e92e
0.7.2 b05642fe386ee79e0d88aa083565c9a93428519e

Детали старых выпусков недоступны.

Основные критические изменения

Примечание: это не исчерпывающий список. Выпуски Lingvo не дают никаких гарантий относительно обратной совместимости.

HEAD

Здесь ничего нет.

0.12.0

  • Общее
    • Теперь требуется Tensorflow 2.9.
    • Поддержка Python 3.7 была удалена.
    • Совместимость с (до) Tensorflow 2.10 и Python 3.10

0.11.0

  • Общее
    • Теперь требуется версия Tensorflow 2.7.
    • Была удалена поддержка Python 3.6.

0.10.0

  • Общее
    • Теперь требуется версия Tensorflow 2.6.
    • Был удалён аргумент theta_fn для CreateVariable().

0.9.1

  • Общее
    • Поддерживается Python 3.9.
    • ops.beam_search_step теперь принимает и возвращает дополнительный аргумент beam_done.
    • В namedtuple beam_search_helper.BeamSearchDecodeOutput теперь удаляется поле done_hyps.

0.9.0

  • Общее

    • Требуется версия Tensorflow 2.5.
    • Была удалена поддержка Python 3.5.
    • py_utils.AddGlobalVN и py_utils.AddPerStepVN были объединены в py_utils.AddVN.
    • BaseSchedule().Value() больше не принимает аргумент step.
    • Классы, производные от BaseSchedule, должны реализовывать Value(), а не FProp().
    • theta.global_step был удалён в пользу py_utils.GetGlobalStep().
    • py_utils.GenerateStepSeedPair() больше не принимает аргумент global_step.
    • PostTrainingStepUpdate() больше не принимает аргумент global_step.
    • Аргумент fatal_errors для пользовательских входных операций теперь принимает подстроки сообщений об ошибках, а не целочисленные коды ошибок. Был удалён. Подклассам больше не нужно декорировать свою функцию __init__.
  • Попытка вызвать self.CreateVariable вне __init__ или _CreateLayerVariables теперь вызывает ошибку.

  • Теперь невозможно получить доступ к self.vars или self.theta внутри __init__. Рефакторинг путём перемещения создания и доступа к переменным в _CreateLayerVariables. Область видимости переменной устанавливается автоматически в соответствии с именем слоя в _CreateLayerVariables.

Подробности для старых выпусков недоступны.

Быстрый старт

Установка

Есть два способа настроить Lingvo: установить фиксированную версию через pip или клонировать репозиторий и собрать его с помощью bazel. Для каждого случая предоставляются конфигурации Docker.

Если вы просто хотите использовать фреймворк как есть, проще всего установить его через pip. Это позволяет разрабатывать и обучать пользовательские модели, используя замороженную версию фреймворка Lingvo. Однако сложно изменить код фреймворка или реализовать новые пользовательские операции.

Если вы хотите развивать фреймворк дальше и потенциально вносить запросы на вытягивание, вам следует избегать использования pip и вместо этого клонировать репозиторий.

pip:

Пакет Lingvo pip можно установить с помощью команды pip3 install lingvo.

См. колабораторию codelab, чтобы узнать, как начать работу с пакетом pip.

Из источников:

Необходимые условия:

  • установка TensorFlow 2.7 установка,
  • компилятор C++ (официально поддерживается только g++ 7.3),
  • система сборки bazel.

Обратитесь к файлу docker/dev.Dockerfile за набором рабочих требований.

git clone репозиторий, затем используйте bazel для сборки и запуска целей напрямую. Команды python -m module в колаборатории необходимо сопоставить с командами bazel run.

docker:

Конфигурации Docker доступны для обеих ситуаций. Инструкции можно найти в комментариях в верхней части каждого файла.

  • lib.dockerfile имеет предустановленный пакет Lingvo pip.
  • dev.Dockerfile можно использовать для сборки Lingvo из исходных кодов.

Как установить docker.

Запуск модели MNIST

Подготовка входных данных

pip:

mkdir -p /tmp/mnist
python3 -m lingvo.tools.keras2ckpt --dataset=mnist

bazel:

mkdir -p /tmp/mnist
bazel run -c opt //lingvo/tools:keras2ckpt -- --dataset=mnist

Следующие файлы будут созданы в /tmp/mnist:

  • mnist.data-00000-of-00001: 53 МБ.
  • mnist.index: 241 байт.

Запуск модели

pip:

cd /tmp/mnist
curl -O https://raw.githubusercontent.com/tensorflow/lingvo/master/lingvo/tasks/image/params/mnist.py
python3 -m lingvo.trainer --run_locally=cpu --mode=sync --model=mnist.LeNet5 --logdir=/tmp/mnist/log

bazel:

(cpu) bazel build -c opt //lingvo:trainer
(gpu) bazel build -c opt --config=cuda //lingvo:trainer
bazel-bin/lingvo/trainer --run_locally=cpu --mode=sync --model=image.mnist.LeNet5 --logdir=/tmp/mnist/log --logtostderr

Примерно через 20 секунд потери должны упасть ниже 0,3, и будет сохранена контрольная точка, например, ниже. Убейте тренера с помощью Ctrl+C.

trainer.py:518] step:   205, steps/sec: 11.64 ... loss:0.25747201 ...
checkpointer.py:115] Save checkpoint
checkpointer.py:117] Save checkpoint done: /tmp/mnist/log/train/ckpt-00000205

Некоторые артефакты будут созданы в каталоге /tmp/mnist/log/control:

  • params.txt: гиперпараметры.
  • model_analysis.txt: размеры моделей для каждого слоя.
  • train.pbtxt: граф обучения tf.GraphDef.
  • events.*: файл событий tensorboard.

А также в каталоге /tmp/mnist/log/train:

  • checkpoint: текстовый файл, содержащий информацию о файлах контрольных точек.
  • ckpt-*: файлы контрольных точек. Необходимо перевести текст на русский язык:

and evaler should be run at the same time as two separate processes.

pip:

python3 -m lingvo.trainer --job=evaler_test --run_locally=cpu --mode=sync --model=mnist.LeNet5 --logdir=/tmp/mnist/log

bazel:

bazel-bin/lingvo/trainer --job=evaler_test --run_locally=cpu --mode=sync --model=image.mnist.LeNet5 --logdir=/tmp/mnist/log --logtostderr

Kill the job with Ctrl+C when it starts waiting for a new checkpoint.

base_runner.py:177] No new check point is found: /tmp/mnist/log/train/ckpt-00000205

The evaluation accuracy can be found slightly earlier in the logs.

base_runner.py:111] eval_test: step:   205, acc5: 0.99775392, accuracy: 0.94150388, ..., loss: 0.20770954, ...

Running the machine translation model

To run a more elaborate model, you'll need a cluster with GPUs. Please refer to third_party/py/lingvo/tasks/mt/README.md for more information.

Running the GShard transformer based giant language model

To train a GShard language model with one trillion parameters on GCP using CloudTPUs v3-512 using 512-way model parallelism, please refer to third_party/py/lingvo/tasks/lm/README.md for more information.

Running the 3d object detection model

To run the StarNet model using CloudTPUs on GCP, please refer to third_party/py/lingvo/tasks/car/README.md.

Models

Automatic Speech Recognition

Car

Image

Language Modelling

Комментарии ( 0 )

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

Введение

Lingvo — это фреймворк, который используется для построения нейронных сетей в Tensorflow, особенно для последовательных моделей. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-lingvo.git
git@api.gitlife.ru:oschina-mirror/mirrors-lingvo.git
oschina-mirror
mirrors-lingvo
mirrors-lingvo
master