嘗試nvidia的Tacotron-2和waveglow的結合, 並且着重考慮多GPU以及inference時的性能.

https://ngc.nvidia.com/catalog/model-scripts/nvidia:tacotron_2_and_waveglow_for_pytorch

https://ngc.nvidia.com/catalog/model-scripts/nvidia:tacotron_2_and_waveglow_for_pytorch/quickStartGuide

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章