使用的wavenet的链接:
链接: wavenet
记录自己踩过的坑。
q1:
tf1.51.1 运行Tactron2中的wavenet,出现以下错误。
Traceback (most recent call last):
File "train.py", line 138, in <module>
main()
File "train.py", line 132, in main
train(args, log_dir, hparams)
File "train.py", line 83, in train
checkpoint = wavenet_train(args, log_dir, hparams, input_path)
File "/root/Tacotron-2/wavenet_vocoder/train.py", line 346, in wavenet_train
return train(log_dir, args, hparams, input_path)
File "/root/Tacotron-2/wavenet_vocoder/train.py", line 230, in train
model, stats = model_train_mode(args, feeder, hparams, global_step)
File "/root/Tacotron-2/wavenet_vocoder/train.py", line 173, in model_train_mode
model = create_model(model_name or args.model, hparams, init)
File "/root/Tacotron-2/wavenet_vocoder/models/__init__.py", line 12, in create_model
return WaveNet(hparams, init)
File "/root/Tacotron-2/wavenet_vocoder/models/wavenet.py", line 109, in __init__
name='input_convolution')
File "/root/Tacotron-2/wavenet_vocoder/models/modules.py", line 376, in __init__
name=name, **kwargs
File "/root/Tacotron-2/wavenet_vocoder/models/modules.py", line 230, in __init__
self._track_checkpointable(layer, name='layer')
AttributeError: 'Conv1D1x1' object has no attribute '_track_checkpointable'
a1:
self._track_checkpointable 替换成 self._track_trackable
q2:
Exiting due to exception: 2 root error(s) found.
(0) Invalid argument: assertion failed: [Condition x == y did not hold element-wise:] [x (WaveNet_model/inference/strided_slice_5:0) = ] [42350] [y (WaveNet_model/inference/strided_slice_6:0) = ] [30800]
[[node WaveNet_model/inference/assert_equal_1/Assert/Assert (defined at /usr/local/lib/python3.6/dist-packages/tensorflow_core/python/framework/ops.py:1748) ]]
[[WaveNet_model/optimizer_1/gradients/WaveNet_model/inference/ResidualConv1DGLU_11/ResidualConv1DGLU_11/residual_block_causal_conv_ResidualConv1DGLU_11/residual_block_causal_conv_ResidualConv1DGLU
(1) Invalid argument: assertion failed: [Condition x == y did not hold element-wise:] [x (WaveNet_model/inference/strided_slice_5:0) = ] [42350] [y (WaveNet_model/inference/strided_slice_6:0) = ] [30800]
[[node WaveNet_model/inference/assert_equal_1/Assert/Assert (defined at /usr/local/lib/python3.6/dist-packages/tensorflow_core/python/framework/ops.py:1748) ]]
0 successful operations.
0 derived errors ignored.
a2:
我用的是16kHz的语料库,hop_size用的是200, tacotron2默认用的是 LJSpeech-1.1语料库,采样率是22050Hz, hop_size用的是275。在训练参数中,下面两个参数需要注意
upsample_type = ‘SubPixel’
upsample_scales = [11, 25], #prod(upsample_scales) should be equal to hop_size
改成[8, 25]就可以。