Lingvo
Что это такое?
Lingvo — это фреймворк для построения нейронных сетей в Tensorflow, особенно моделей последовательностей.
Список публикаций с использованием Lingvo можно найти здесь.
Содержание
Выпуски
Версия 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 не дают никаких гарантий относительно обратной совместимости.
Здесь ничего нет.
Общее
__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.
Из источников:
Необходимые условия:
Обратитесь к файлу docker/dev.Dockerfile за набором рабочих требований.
git clone
репозиторий, затем используйте bazel для сборки и запуска целей напрямую. Команды python -m module
в колаборатории необходимо сопоставить с командами bazel run
.
docker:
Конфигурации Docker доступны для обеих ситуаций. Инструкции можно найти в комментариях в верхней части каждого файла.
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, ...
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.
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.
To run the StarNet model using CloudTPUs on GCP, please refer to third_party/py/lingvo/tasks/car/README.md
.
Listen, Attend and Spell.
William Chan, Navdeep Jaitly, Quoc V. Le, and Oriol Vinyals. ICASSP 2016.
End-to-end Continuous Speech Recognition using Attention-based Recurrent
NN: First Results.
Jan Chorowski, Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. arXiv 2014.
DeepFusion: Lidar-Camera Deep Fusion for Multi-Modal 3D Object Detection.
Yingwei Li, Adams Wei Yu, Tianjian Meng, Ben Caine, Jiquan Ngiam, Daiyi Peng, Junyang Shen, Bo Wu, Yifeng Lu, Denny Zhou, Quoc V. Le, Alan Yuille, Mingxing Tan. CVPR 2022.
StarNet: Targeted Computation for Object Detection in Point Clouds.
Jiquan Ngiam, Benjamin Caine, Wei Han, Brandon Yang, Yuning Chai, Pei Sun, Yin Zhou, Xi Yi, Ouais Alsharif, Patrick Nguyen, Zhifeng Chen, Jonathon Shlens, and Vijay Vasudevan. arXiv 2019.
Gradient-based learning applied to document recognition.
Yann LeCun, Leon Bottou, Yoshua Bengio, and Patrick Haffner. IEEE 1998.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )