https://ngc.nvidia.com/catalog/model-scripts/nvidia:tacotron_2_and_waveglow_for_pytorch
https://www.jianshu.com/p/4905bf8e06e5
model = TheModelClass(*args, **kwargs)
model.load_state_dict(torch.load(PATH))
model.eval()
記住,您必須調用model.eval(),以便在運行推斷之前將dropout和batch規範化層設置爲評估模式。如果不這樣做,將會產生不一致的推斷結果。
https://github.com/NVIDIA/nvidia-docker/wiki/nvidia-docker#gpu-isolation
# Running nvidia-docker isolating specific GPUs by index
NV_GPU='0,1' nvidia-docker <docker-options> <docker-command> <docker-args>
#!/bin/bash
nvidia-docker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -it --rm --ipc=host -v $PWD:/workspace/tacotron2/ tacotron2 bash
上面的是打開docker.
合成命令:
python inference.py --tacotron2 output/checkpoint_Tacotron2_750 --waveglow output/checkpoint_WaveGlow_1000 -o output/ -i phrases/phrase.txt --amp-run
可以結合Tacotron2的代碼, 來優化代碼結構, 這個分佈式的代碼結構有點老.
主要在於ckpt的臨時保存, 直接把單獨的Tacotron2代碼遷移過來就可, 但是其中learning_rate怎麼放到opt中, 以及opt怎麼delay,
更重要的是怎麼恢復到ckpt中的learning_rate.
以及思考如何在inference中使用分佈式.
https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/SpeechSynthesis/Tacotron2