Lingvo在 Tensorflow 中构建神经网络的框架
Lingvo 是一个用于在 Tensorflow 中构建神经网络的框架,特别是序列模型。
快速开始
安装
设置 Lingvo 有两种方法:通过 pip 安装固定版本,或者克隆仓库并使用 bazel 构建它。Lingvo 为每种情况都提供了 Docker 配置。
如果您只想按原样使用框架,最简单的方法是通过 pip 安装它。这使得使用 Lingvo 框架的固定版本开发和训练自定义模型成为可能。但是,很难修改框架代码或实现新的自定义操作。
如果您想进一步开发框架并可能贡献拉取请求,则应避免使用 pip 并用克隆仓库进行替代。
pip 安装:
该 Lingvo 的 pip 封装包可以通过pip3 install lingvo
安装
从源代码构建:
先决条件是:
- 安装 TensorFlow 2.5
- 一个
C++
编译器(只正式支持 g++ 7.3) - bazel 构建系统。
git clone
存储库,然后使用 bazel 直接构建和运行目标。Codelab 中的python -m module
命令需要映射到bazel run
命令上。
Docker:
Docker 配置可用于这两种情况:
- lib.dockerfile 预装了 Lingvo pip 包
- dev.dockerfile 可用于从源代码构建 Lingvo
运行 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
: 53MB -
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
评论