From e0ba85f6b5ca951779a2f75a390c87eea834a709 Mon Sep 17 00:00:00 2001 From: chenfeiyu Date: Fri, 8 May 2020 01:43:05 +0000 Subject: [PATCH] update for wavenet and clarinet --- README.md | 2 +- examples/clarinet/train.py | 10 +++++----- examples/wavenet/train.py | 13 ++++++------- parakeet/models/clarinet/utils.py | 24 ++++++------------------ parakeet/models/wavenet/wavenet.py | 5 +++-- 5 files changed, 21 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index e32219b..7bb380e 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ sudo apt-get install libsndfile1 ### Install PaddlePaddle -See [install](https://www.paddlepaddle.org.cn/install/quick) for more details. This repo requires PaddlePaddle **1.7.1** or above. +See [install](https://www.paddlepaddle.org.cn/install/quick) for more details. This repo requires PaddlePaddle **1.8.0** or above. ### Install Parakeet diff --git a/examples/clarinet/train.py b/examples/clarinet/train.py index 82d9aa1..ed55702 100644 --- a/examples/clarinet/train.py +++ b/examples/clarinet/train.py @@ -163,11 +163,11 @@ if __name__ == "__main__": anneal_interval = train_config["anneal_interval"] lr_scheduler = dg.ExponentialDecay( learning_rate, anneal_interval, anneal_rate, staircase=True) - optim = fluid.optimizer.Adam( - lr_scheduler, parameter_list=model.parameters()) gradiant_max_norm = train_config["gradient_max_norm"] - clipper = fluid.dygraph_grad_clip.GradClipByGlobalNorm( - gradiant_max_norm) + optim = fluid.optimizer.Adam( + lr_scheduler, + parameter_list=model.parameters(), + grad_clip=fluid.clip.ClipByGlobalNorm(gradiant_max_norm)) # train max_iterations = train_config["max_iterations"] @@ -229,7 +229,7 @@ if __name__ == "__main__": step_loss)) l.backward() - optim.minimize(l, grad_clip=clipper) + optim.minimize(l) optim.clear_gradients() if global_step % eval_interval == 0: diff --git a/examples/wavenet/train.py b/examples/wavenet/train.py index 14b861b..95e5c0d 100644 --- a/examples/wavenet/train.py +++ b/examples/wavenet/train.py @@ -126,12 +126,11 @@ if __name__ == "__main__": anneal_interval = train_config["anneal_interval"] lr_scheduler = dg.ExponentialDecay( learning_rate, anneal_interval, anneal_rate, staircase=True) - optim = fluid.optimizer.Adam( - lr_scheduler, parameter_list=model.parameters()) - gradiant_max_norm = train_config["gradient_max_norm"] - clipper = fluid.dygraph_grad_clip.GradClipByGlobalNorm( - gradiant_max_norm) + optim = fluid.optimizer.Adam( + lr_scheduler, + parameter_list=model.parameters(), + grad_clip=fluid.clip.ClipByGlobalNorm(gradiant_max_norm)) train_loader = fluid.io.DataLoader.from_generator( capacity=10, return_list=True) @@ -149,7 +148,7 @@ if __name__ == "__main__": log_dir = os.path.join(args.output, "log") writer = SummaryWriter(log_dir) - # load parameters and optimizer, and opdate iterations done sofar + # load parameters and optimizer, and update iterations done so far if args.checkpoint is not None: iteration = io.load_parameters( model, optim, checkpoint_path=args.checkpoint) @@ -181,7 +180,7 @@ if __name__ == "__main__": writer.add_scalar("learning_rate", optim._learning_rate.step().numpy()[0], global_step) - optim.minimize(loss_var, grad_clip=clipper) + optim.minimize(loss_var) optim.clear_gradients() print("global_step: {}\tloss: {:<8.6f}".format(global_step, loss_np[0])) diff --git a/parakeet/models/clarinet/utils.py b/parakeet/models/clarinet/utils.py index d5c2b44..6a92b26 100644 --- a/parakeet/models/clarinet/utils.py +++ b/parakeet/models/clarinet/utils.py @@ -29,22 +29,10 @@ def conv2d(input, data_format="NCHW"): padding = tuple(pad for pad_dim in padding for pad in pad_dim) - inputs = { - 'Input': [input], - 'Filter': [weight], - } - attrs = { - 'strides': stride, - 'paddings': padding, - 'dilations': dilation, - 'groups': groups, - 'use_cudnn': use_cudnn, - 'use_mkldnn': False, - 'fuse_relu_before_depthwise_conv': False, - "padding_algorithm": "EXPLICIT", - "data_format": data_format, - } + attrs = ('strides', stride, 'paddings', padding, 'dilations', dilation, + 'groups', groups, 'use_cudnn', use_cudnn, 'use_mkldnn', False, + 'fuse_relu_before_depthwise_conv', False, "padding_algorithm", + "EXPLICIT", "data_format", data_format) - outputs = ops.conv2d(inputs, attrs) - out = outputs["Output"][0] - return out \ No newline at end of file + out = ops.conv2d(input, weight, *attrs) + return out diff --git a/parakeet/models/wavenet/wavenet.py b/parakeet/models/wavenet/wavenet.py index 49778a5..a0296e1 100644 --- a/parakeet/models/wavenet/wavenet.py +++ b/parakeet/models/wavenet/wavenet.py @@ -111,7 +111,7 @@ class ResidualBlock(dg.Layer): h = h[:, :, :time_steps] # condition - if condition: + if condition is not None: h += self.condition_proj(condition) # gated tanh @@ -398,7 +398,8 @@ class WaveNet(dg.Layer): x_std = inv_std * (t - mu) exponent = F.exp(-0.5 * x_std * x_std) - pdf_x = 1.0 / np.sqrt(2.0 * np.pi) * inv_std * exponent + pdf_x = 1.0 / math.sqrt(2.0 * math.pi) * inv_std * exponent + pdf_x = p_mixture * pdf_x # pdf_x: [bs, len] pdf_x = F.reduce_sum(pdf_x, dim=-1)