[软件工程应用与实践]lingvo学习笔记
2021SC@SDUSC
Lingvo是一个tensorflow框架,提供了深度学习协同研究的完整解决方案,专注于seq2seq模型。Lingvo模型有一下模块化的building block组成,非常灵活与容易扩展,中心化实验配置管理以及高度可定制的能力。框架直接支持分布式训练以及量化推理,包含了大量已有的工具、辅助函数、以及最新的研究的想法。
参考论文
Lingvo: a Modular and Scalable Framework
for Sequence-to-Sequence Modeling
学习计划
- 学习TensorFlow
- 读lingvo代码
lingvo
- 序列到序列模型
模型将任意长度的输入序列映射到任意长度的输出序列。序列到序列的示例用法模型包括机器翻译,它从一个单词映射出一个单词序列语言变成另一种语言中具有相同意思的一系列单词;语音识别,将一系列声学特征映射到一个序列中的单词; 以及文本摘要将一系列的单词映射成更短的表达相同意思的单词序列。
- 所需基础知识
** 递归神经网络
** LSTM
** 注意力机制
** Tensorflow
- 环境配置
原文档提供控制台安装方式失败
返回查看原文档, 发现可以克隆仓库后用Bazel软件进行安装
Bazel安装
参考链接
bazel安装
更新bazel
$ sudo apt-get update && sudo apt-get install bazel
下载环境
$ sudo apt-get install pkg-config zip g++ zlib1g-dev unzip
运行bazel
$ chmod +x bazel-version-installer-os.sh
$ ./bazel-version-installer-os.sh --user
- 安装tensorflow
控制台输入指令
pip install tensorflow
检验tensorflow是否安装完成
tensorflow
- 安装C++编译器(已完成)
python -m module
链接到bazel run
中运行
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
参考 雅各布 lingvo框架笔记
分工
lingvo由Models、Tasks、Layers、Input Generators、Params、Experiment Configuration、Job Runners、nestedMap和Custom ops九个组件组成。
我负责后四个组件。