2019 年 2 月 22 日 — 由 Jonathan Shen 发布
Lingvo 是 国际语言世界语 中的“语言”一词。这个名称暗示了 Lingvo 框架的根源 — 它被开发为使用 TensorFlow 的通用深度学习框架,专注于与语言相关的任务(如机器翻译、语音识别和语音合成)的序列模型。
在内部,此框架获得了关注,并且...t
图 1:Lingvo 框架概览,勾勒了如何实例化、训练和导出模型以进行评估和服务。 |
def Task(cls):
p = model.AsrModel.Params()
p.name = 'librispeech'
# Initialize encoder params.
ep = p.encoder
# Data consists 240 dimensional frames (80 x 3 frames), which we
# re-interpret as individual 80 dimensional frames. See also,
# LibrispeechCommonAsrInputParams.
ep.input_shape = [None, None, 80, 1]
ep.lstm_cell_size = 1024
ep.num_lstm_layers = 4
ep.conv_filter_shapes = [(3, 3, 1, 32), (3, 3, 32, 32)]
ep.conv_filter_strides = [(2, 2), (2, 2)]
ep.cnn_tpl.params_init = py_utils.WeightInit.Gaussian(0.001)
# Disable conv LSTM layers.
ep.num_conv_lstm_layers = 0
# Initialize decoder params.
dp = p.decoder
dp.rnn_cell_dim = 1024
dp.rnn_layers = 2
dp.source_dim = 2048
# Use functional while based unrolling.
dp.use_while_loop_based_unrolling = False
tp = p.train
tp.learning_rate = 2.5e-4
tp.lr_schedule = lr_schedule.ContinuousLearningRateSchedule.Params().Set(
start_step=50000, half_life_steps=100000, min=0.01)
# Setting p.eval.samples_per_summary to a large value ensures that dev,
# devother, test, testother are evaluated completely (since num_samples for
# each of these sets is less than 5000), while train summaries will be
# computed on 5000 examples.
p.eval.samples_per_summary = 5000
p.eval.decoder_samples_per_summary = 0
# Use variational weight noise to prevent overfitting.
p.vn.global_vn = True
p.train.vn_std = 0.075
p.train.vn_start_step = 20000
return p
图 2:Lingvo 中任务配置的一个示例。每个实验的超参数都会在其自己的类中进行配置,该类与构建网络并检入版本控制的代码分开。 源。 |
2019 年 2 月 22 日 — 由 Jonathan Shen 发表
Lingvo 是 国际语言世界语 中“语言”一词。此命名暗示了 Lingvo 框架的根源 — 它被开发为一个通用深度学习框架,使用 TensorFlow,重点关注针对机器翻译、语音识别和语音合成等语言相关任务的序列模型。
在内部,该框架获得了关注并……