tacotron(seq2seq)模型训练80k步后损失函数上升 20C

用10h的中文数据集训练Google tacotron(seq-attention-seq)模型,每次训练到80k步后损失就开始猛涨(梯度爆炸?)而且loss最低值下降到了0.75左右。但是模型的alignment很明显,合成语音只是有杂声。怎么解决?

alignment:

图片说明图片说明

学习率/损失/梯度等曲线:

图片说明
图片说明

** 模型参数:**

# 模型:Tacotron 1
  outputs_per_step=5,
  embed_depth=512,
  prenet_depths=[256, 256],
  encoder_depth=256,
  postnet_depth=512,
  attention_depth=128,
  decoder_depth=1024,

# 优化器:Adam
  batch_size=32,
  adam_beta1=0.9,
  adam_beta2=0.999,
  initial_learning_rate=0.002,
  decay_learning_rate=True,
  use_cmudict=False,

# Initializer:
  truncated_normal_initializer

# 学习率延迟:
  step = init_lr * warmup_steps**0.5 * tf.minimum(step * warmup_steps**-1.5, step**-0.5)

1个回答

学习率降低一些,用dropout/正则化防止过拟合,还有增加训练数据量或者提前结束训练。

u013311178
dli_12 我跟你遇到了一样的问题,请问你解决了么
12 个月之前 回复
a624731186
wangqiang624731186 回复litm5e0: 你好,你的学习率/损失/梯度等曲线曲线怎么生成的
大约一年之前 回复
litm5e0
litm5e0 可是学习率只下降到了0.75左右,正常怎么说也得到0.1 把学习率降低能把LOSS降下来吗
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问