未验证 提交 ce8fad54 编写于 作者: L Li Fuchen 提交者: GitHub

Merge pull request #31 from ShenYuhan/add_vdl

add visualdl for parakeet
......@@ -21,7 +21,6 @@ import random
from tqdm import tqdm
import pickle
import numpy as np
from tensorboardX import SummaryWriter
import paddle.fluid.dygraph as dg
from paddle import fluid
......
......@@ -21,7 +21,7 @@ import random
from tqdm import tqdm
import pickle
import numpy as np
from tensorboardX import SummaryWriter
from visualdl import LogWriter
import paddle.fluid.dygraph as dg
from paddle import fluid
......@@ -179,7 +179,7 @@ if __name__ == "__main__":
checkpoint_dir = os.path.join(args.output, "checkpoints")
state_dir = os.path.join(args.output, "states")
log_dir = os.path.join(args.output, "log")
writer = SummaryWriter(log_dir)
writer = LogWriter(log_dir)
if args.checkpoint is not None:
iteration = io.load_parameters(
......
......@@ -15,7 +15,6 @@
from __future__ import division
import os
import soundfile as sf
from tensorboardX import SummaryWriter
from collections import OrderedDict
from paddle import fluid
......
......@@ -11,7 +11,6 @@ from paddle import fluid
from paddle.fluid import layers as F
from paddle.fluid import dygraph as dg
from paddle.fluid.io import DataLoader
from tensorboardX import SummaryWriter
import soundfile as sf
from parakeet.data import SliceDataset, DataCargo, PartialyRandomizedSimilarTimeLengthSampler, SequentialSampler
......
......@@ -10,7 +10,7 @@ from paddle.fluid import layers as F
from paddle.fluid import initializer as I
from paddle.fluid import dygraph as dg
from paddle.fluid.io import DataLoader
from tensorboardX import SummaryWriter
from visualdl import LogWriter
from parakeet.models.deepvoice3 import Encoder, Decoder, PostNet, SpectraNet
from parakeet.data import SliceDataset, DataCargo, SequentialSampler, RandomSampler
......@@ -181,7 +181,7 @@ if __name__ == "__main__":
global global_step
global_step = 1
global writer
writer = SummaryWriter()
writer = LogWriter()
print("[Training] tensorboard log and checkpoints are save in {}".format(
writer.logdir))
train(args, config)
\ No newline at end of file
......@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import os
from tensorboardX import SummaryWriter
from visualdl import LogWriter
from scipy.io.wavfile import write
from collections import OrderedDict
import argparse
......@@ -78,7 +78,7 @@ def synthesis(text_input, args):
if not os.path.exists(args.output):
os.mkdir(args.output)
writer = SummaryWriter(os.path.join(args.output, 'log'))
writer = LogWriter(os.path.join(args.output, 'log'))
model = FastSpeech(cfg['network'], num_mels=cfg['audio']['num_mels'])
# Load parameters.
......
......@@ -22,7 +22,7 @@ from ruamel import yaml
from tqdm import tqdm
from matplotlib import cm
from collections import OrderedDict
from tensorboardX import SummaryWriter
from visualdl import LogWriter
import paddle.fluid.dygraph as dg
import paddle.fluid.layers as layers
import paddle.fluid as fluid
......@@ -69,8 +69,8 @@ def main(args):
if not os.path.exists(args.output):
os.mkdir(args.output)
writer = SummaryWriter(os.path.join(args.output,
'log')) if local_rank == 0 else None
writer = LogWriter(os.path.join(args.output,
'log')) if local_rank == 0 else None
model = FastSpeech(cfg['network'], num_mels=cfg['audio']['num_mels'])
model.train()
......
......@@ -16,7 +16,7 @@ from scipy.io.wavfile import write
import numpy as np
from tqdm import tqdm
from matplotlib import cm
from tensorboardX import SummaryWriter
from visualdl import LogWriter
from ruamel import yaml
from pathlib import Path
import argparse
......@@ -81,7 +81,7 @@ def synthesis(text_input, args):
if not os.path.exists(args.output):
os.mkdir(args.output)
writer = SummaryWriter(os.path.join(args.output, 'log'))
writer = LogWriter(os.path.join(args.output, 'log'))
fluid.enable_dygraph(place)
with fluid.unique_name.guard():
......@@ -121,8 +121,7 @@ def synthesis(text_input, args):
writer.add_image(
'Attention_%d_0' % global_step,
x,
i * 4 + j,
dataformats="HWC")
i * 4 + j)
if args.vocoder == 'griffin-lim':
#synthesis use griffin-lim
......
......@@ -13,7 +13,7 @@
# limitations under the License.
import os
from tqdm import tqdm
from tensorboardX import SummaryWriter
from visualdl import LogWriter
from collections import OrderedDict
import argparse
from pprint import pprint
......@@ -62,8 +62,8 @@ def main(args):
if not os.path.exists(args.output):
os.mkdir(args.output)
writer = SummaryWriter(os.path.join(args.output,
'log')) if local_rank == 0 else None
writer = LogWriter(os.path.join(args.output,
'log')) if local_rank == 0 else None
fluid.enable_dygraph(place)
network_cfg = cfg['network']
......@@ -131,23 +131,28 @@ def main(args):
loss = loss + stop_loss
if local_rank == 0:
writer.add_scalars('training_loss', {
'mel_loss': mel_loss.numpy(),
'post_mel_loss': post_mel_loss.numpy()
}, global_step)
writer.add_scalar('training_loss/mel_loss',
mel_loss.numpy(),
global_step)
writer.add_scalar('training_loss/post_mel_loss',
post_mel_loss.numpy(),
global_step)
writer.add_scalar('stop_loss', stop_loss.numpy(), global_step)
if parallel:
writer.add_scalars('alphas', {
'encoder_alpha': model._layers.encoder.alpha.numpy(),
'decoder_alpha': model._layers.decoder.alpha.numpy(),
}, global_step)
writer.add_scalar('alphas/encoder_alpha',
model._layers.encoder.alpha.numpy(),
global_step)
writer.add_scalar('alphas/decoder_alpha',
model._layers.decoder.alpha.numpy(),
global_step)
else:
writer.add_scalars('alphas', {
'encoder_alpha': model.encoder.alpha.numpy(),
'decoder_alpha': model.decoder.alpha.numpy(),
}, global_step)
writer.add_scalar('alphas/encoder_alpha',
model.encoder.alpha.numpy(),
global_step)
writer.add_scalar('alphas/decoder_alpha',
model.decoder.alpha.numpy(),
global_step)
writer.add_scalar('learning_rate',
optimizer._learning_rate.step().numpy(),
......@@ -162,8 +167,7 @@ def main(args):
writer.add_image(
'Attention_%d_0' % global_step,
x,
i * 4 + j,
dataformats="HWC")
i * 4 + j)
for i, prob in enumerate(attn_enc):
for j in range(cfg['network']['encoder_num_head']):
......@@ -173,8 +177,7 @@ def main(args):
writer.add_image(
'Attention_enc_%d_0' % global_step,
x,
i * 4 + j,
dataformats="HWC")
i * 4 + j)
for i, prob in enumerate(attn_dec):
for j in range(cfg['network']['decoder_num_head']):
......@@ -184,8 +187,7 @@ def main(args):
writer.add_image(
'Attention_dec_%d_0' % global_step,
x,
i * 4 + j,
dataformats="HWC")
i * 4 + j)
if parallel:
loss = model.scale_loss(loss)
......
......@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from tensorboardX import SummaryWriter
from visualdl import LogWriter
import os
from tqdm import tqdm
from pathlib import Path
......@@ -60,8 +60,8 @@ def main(args):
if not os.path.exists(args.output):
os.mkdir(args.output)
writer = SummaryWriter(os.path.join(args.output,
'log')) if local_rank == 0 else None
writer = LogWriter(os.path.join(args.output,
'log')) if local_rank == 0 else None
fluid.enable_dygraph(place)
model = Vocoder(cfg['train']['batch_size'], cfg['vocoder']['hidden_size'],
......@@ -121,7 +121,7 @@ def main(args):
model.clear_gradients()
if local_rank == 0:
writer.add_scalars('training_loss', {'loss': loss.numpy(), },
writer.add_scalar('training_loss/loss', loss.numpy(),
global_step)
# save checkpoint
......
......@@ -22,7 +22,8 @@ import argparse
import numpy as np
import paddle.fluid.dygraph as dg
from paddle import fluid
from tensorboardX import SummaryWriter
from visualdl import LogWriter
import utils
from parakeet.utils import io
......@@ -78,8 +79,8 @@ def train(config):
os.makedirs(checkpoint_dir)
# Create tensorboard logger.
tb = SummaryWriter(os.path.join(run_dir, "logs")) \
if rank == 0 else None
vdl = LogWriter(os.path.join(run_dir, "logs")) \
if rank == 0 else None
# Configurate device
place = fluid.CUDAPlace(rank) if use_gpu else fluid.CPUPlace()
......@@ -94,7 +95,7 @@ def train(config):
print("Random Seed: ", seed)
# Build model.
model = WaveFlow(config, checkpoint_dir, parallel, rank, nranks, tb)
model = WaveFlow(config, checkpoint_dir, parallel, rank, nranks, vdl)
iteration = model.build()
while iteration < config.max_iterations:
......@@ -113,7 +114,7 @@ def train(config):
# Close TensorBoard.
if rank == 0:
tb.close()
vdl.close()
if __name__ == "__main__":
......
......@@ -42,7 +42,7 @@ class WaveFlow():
rank (int, optional): the rank of the process in a multi-process
scenario. Defaults to 0.
nranks (int, optional): the total number of processes. Defaults to 1.
tb_logger (obj, optional): logger to visualize metrics.
vdl_logger (obj, optional): logger to visualize metrics.
Defaults to None.
Returns:
......@@ -55,13 +55,13 @@ class WaveFlow():
parallel=False,
rank=0,
nranks=1,
tb_logger=None):
vdl_logger=None):
self.config = config
self.checkpoint_dir = checkpoint_dir
self.parallel = parallel
self.rank = rank
self.nranks = nranks
self.tb_logger = tb_logger
self.vdl_logger = vdl_logger
self.dtype = "float16" if config.use_fp16 else "float32"
def build(self, training=True):
......@@ -161,8 +161,8 @@ class WaveFlow():
load_time - start_time, graph_time - load_time)
print(log)
tb = self.tb_logger
tb.add_scalar("Train-Loss-Rank-0", loss_val, iteration)
vdl_writer = self.vdl_logger
vdl_writer.add_scalar("Train-Loss-Rank-0", loss_val, iteration)
@dg.no_grad
def valid_step(self, iteration):
......@@ -175,7 +175,7 @@ class WaveFlow():
None
"""
self.waveflow.eval()
tb = self.tb_logger
vdl_writer = self.vdl_logger
total_loss = []
sample_audios = []
......@@ -188,10 +188,12 @@ class WaveFlow():
# Visualize latent z and scale log_s.
if self.rank == 0 and i == 0:
tb.add_histogram("Valid-Latent_z", valid_z.numpy(), iteration)
vdl_writer.add_histogram("Valid-Latent_z", valid_z.numpy(),
iteration)
for j, valid_log_s in enumerate(valid_log_s_list):
hist_name = "Valid-{}th-Flow-Log_s".format(j)
tb.add_histogram(hist_name, valid_log_s.numpy(), iteration)
vdl_writer.add_histogram(hist_name, valid_log_s.numpy(),
iteration)
valid_loss = self.criterion(valid_outputs)
total_loss.append(float(valid_loss.numpy()))
......@@ -202,7 +204,7 @@ class WaveFlow():
log = "Test | Rank: {} AvgLoss: {:<8.3f} Time {:<8.3f}".format(
self.rank, loss_val, total_time)
print(log)
tb.add_scalar("Valid-Avg-Loss", loss_val, iteration)
vdl_writer.add_scalar("Valid-Avg-Loss", loss_val, iteration)
@dg.no_grad
def infer(self, iteration):
......
......@@ -17,7 +17,6 @@ import os
import ruamel.yaml
import argparse
from tqdm import tqdm
from tensorboardX import SummaryWriter
from paddle import fluid
fluid.require_version('1.8.0')
import paddle.fluid.dygraph as dg
......
......@@ -17,7 +17,7 @@ import os
import ruamel.yaml
import argparse
import tqdm
from tensorboardX import SummaryWriter
from visualdl import LogWriter
from paddle import fluid
fluid.require_version('1.8.0')
import paddle.fluid.dygraph as dg
......@@ -154,7 +154,7 @@ if __name__ == "__main__":
eval_interval = train_config["eval_interval"]
checkpoint_dir = os.path.join(args.output, "checkpoints")
log_dir = os.path.join(args.output, "log")
writer = SummaryWriter(log_dir)
writer = LogWriter(log_dir)
# load parameters and optimizer, and update iterations done so far
if args.checkpoint is not None:
......
......@@ -57,8 +57,7 @@ setup_info = dict(
'numba==0.47.0',
'tqdm==4.19.8',
'matplotlib',
'tensorboardX',
'tensorboard',
'visualdl>=2.0.1',
'scipy',
'ruamel.yaml',
'pandas',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册