flowtron
flowtron copied to clipboard
Docker support
Hey!
Docker support mentioned in README.md. But I cannot find Dockerfile. Could you please share this file?
Thank you
pull NGC pytorch docker image. It already included al python modules for tacotron2 and waveglowsame as flowtron.
Hi, which tag did you use? There are many tags. https://ngc.nvidia.com/catalog/containers/nvidia:pytorch/tags
I tried 20.03-py3
but it failed to import PyTorch.
$ docker run --gpus all --ipc=host --rm --interactive --tty --user $(id --user):$(id --group) --env HOME=/tmp nvcr.io/nvidia/pytorch:20.03-py3 bash -c "git clone https://github.com/NVIDIA/flowtron.git; cd flowtron; pip install -r requirements.txt; python train.py -c config.json -p train_config.output_directory=outdirectory"
=============
== PyTorch ==
=============
NVIDIA Release 20.03 (build 11122848)
PyTorch Version 1.5.0a0+8f84ded
Container image Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
Copyright (c) 2014-2019 Facebook Inc.
Copyright (c) 2011-2014 Idiap Research Institute (Ronan Collobert)
Copyright (c) 2012-2014 Deepmind Technologies (Koray Kavukcuoglu)
Copyright (c) 2011-2012 NEC Laboratories America (Koray Kavukcuoglu)
Copyright (c) 2011-2013 NYU (Clement Farabet)
Copyright (c) 2006-2010 NEC Laboratories America (Ronan Collobert, Leon Bottou, Iain Melvin, Jason Weston)
Copyright (c) 2006 Idiap Research Institute (Samy Bengio)
Copyright (c) 2001-2004 Idiap Research Institute (Ronan Collobert, Samy Bengio, Johnny Mariethoz)
Copyright (c) 2015 Google Inc.
Copyright (c) 2015 Yangqing Jia
Copyright (c) 2013-2016 The Caffe contributors
All rights reserved.
Various files include modifications (c) NVIDIA CORPORATION. All rights reserved.
NVIDIA modifications are covered by the license terms that apply to the underlying project or file.
NOTE: MOFED driver for multi-node communication was not detected.
Multi-node communication performance may be reduced.
Cloning into 'flowtron'...
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 105 (delta 1), reused 4 (delta 1), pack-reused 98
Receiving objects: 100% (105/105), 2.35 MiB | 2.28 MiB/s, done.
Resolving deltas: 100% (35/35), done.
Defaulting to user installation because normal site-packages is not writeable
Collecting matplotlib==2.1.0
Downloading matplotlib-2.1.0-cp36-cp36m-manylinux1_x86_64.whl (15.0 MB)
|████████████████████████████████| 15.0 MB 6.5 MB/s
Collecting numpy==1.13.3
Downloading numpy-1.13.3-cp36-cp36m-manylinux1_x86_64.whl (17.0 MB)
|████████████████████████████████| 17.0 MB 890 kB/s
Collecting inflect==0.2.5
Downloading inflect-0.2.5-py2.py3-none-any.whl (58 kB)
|████████████████████████████████| 58 kB 3.6 MB/s
Collecting librosa==0.6.0
Downloading librosa-0.6.0.tar.gz (1.5 MB)
|████████████████████████████████| 1.5 MB 4.5 MB/s
Collecting scipy==1.0.0
Downloading scipy-1.0.0-cp36-cp36m-manylinux1_x86_64.whl (50.0 MB)
|████████████████████████████████| 50.0 MB 6.5 MB/s
Collecting Unidecode==1.0.22
Downloading Unidecode-1.0.22-py2.py3-none-any.whl (235 kB)
|████████████████████████████████| 235 kB 5.5 MB/s
Collecting pillow
Downloading Pillow-7.2.0-cp36-cp36m-manylinux1_x86_64.whl (2.2 MB)
|████████████████████████████████| 2.2 MB 4.8 MB/s
Collecting tensorboardX
Downloading tensorboardX-2.1-py2.py3-none-any.whl (308 kB)
|████████████████████████████████| 308 kB 4.7 MB/s
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /opt/conda/lib/python3.6/site-packages (from matplotlib==2.1.0->-r requirements.txt (line 1)) (2.4.6)
Requirement already satisfied: python-dateutil>=2.0 in /opt/conda/lib/python3.6/site-packages (from matplotlib==2.1.0->-r requirements.txt (line 1)) (2.8.1)
Requirement already satisfied: cycler>=0.10 in /opt/conda/lib/python3.6/site-packages (from matplotlib==2.1.0->-r requirements.txt (line 1)) (0.10.0)
Requirement already satisfied: pytz in /opt/conda/lib/python3.6/site-packages (from matplotlib==2.1.0->-r requirements.txt (line 1)) (2019.3)
Requirement already satisfied: six>=1.10 in /opt/conda/lib/python3.6/site-packages (from matplotlib==2.1.0->-r requirements.txt (line 1)) (1.14.0)
Requirement already satisfied: audioread>=2.0.0 in /opt/conda/lib/python3.6/site-packages (from librosa==0.6.0->-r requirements.txt (line 4)) (2.1.8)
Requirement already satisfied: scikit-learn!=0.19.0,>=0.14.0 in /opt/conda/lib/python3.6/site-packages (from librosa==0.6.0->-r requirements.txt (line 4)) (0.22.2.post1)
Requirement already satisfied: joblib>=0.7.0 in /opt/conda/lib/python3.6/site-packages (from librosa==0.6.0->-r requirements.txt (line 4)) (0.14.1)
Requirement already satisfied: decorator>=3.0.0 in /opt/conda/lib/python3.6/site-packages (from librosa==0.6.0->-r requirements.txt (line 4)) (4.4.1)
Requirement already satisfied: resampy>=0.2.0 in /opt/conda/lib/python3.6/site-packages (from librosa==0.6.0->-r requirements.txt (line 4)) (0.2.2)
Requirement already satisfied: protobuf>=3.8.0 in /opt/conda/lib/python3.6/site-packages (from tensorboardX->-r requirements.txt (line 8)) (3.11.3)
Requirement already satisfied: numba>=0.32 in /opt/conda/lib/python3.6/site-packages (from resampy>=0.2.0->librosa==0.6.0->-r requirements.txt (line 4)) (0.43.1)
Requirement already satisfied: setuptools in /opt/conda/lib/python3.6/site-packages (from protobuf>=3.8.0->tensorboardX->-r requirements.txt (line 8)) (45.2.0.post20200210)
Requirement already satisfied: llvmlite>=0.28.0dev0 in /opt/conda/lib/python3.6/site-packages (from numba>=0.32->resampy>=0.2.0->librosa==0.6.0->-r requirements.txt (line 4)) (0.28.0)
Building wheels for collected packages: librosa
Building wheel for librosa (setup.py) ... done
Created wheel for librosa: filename=librosa-0.6.0-py3-none-any.whl size=1553495 sha256=808b6e0ce1a7b41c92c02f2f54cea1a15ab11bcfef7114e3c490be78b788b3be
Stored in directory: /tmp/.cache/pip/wheels/72/c0/f2/b00db6242414bafcbbca59c495a52a1bfd0574f29a7e498dc9
Successfully built librosa
ERROR: thinc 6.12.1 has requirement msgpack<0.6.0,>=0.5.6, but you'll have msgpack 0.6.1 which is incompatible.
ERROR: spacy 2.0.16 has requirement numpy>=1.15.0, but you'll have numpy 1.13.3 which is incompatible.
Installing collected packages: numpy, matplotlib, inflect, scipy, librosa, Unidecode, pillow, tensorboardX
WARNING: The script unidecode is installed in '/tmp/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed Unidecode-1.0.22 inflect-0.2.5 librosa-0.6.0 matplotlib-2.1.0 numpy-1.13.3 pillow-7.2.0 scipy-1.0.0 tensorboardX-2.1
Traceback (most recent call last):
File "train.py", line 20, in <module>
import torch
File "/opt/conda/lib/python3.6/site-packages/torch/__init__.py", line 125, in <module>
from torch._C import *
ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'
Reinstall PyTorch after pip install -r requirements.txt
works but it requires root in the container.
$ docker run --gpus all --ipc=host --rm --interactive --tty --env HOME=/tmp nvcr.io/nvidia/pytorch:20.03-py3 bash -c "git clone https://github.com/NVIDIA/flowtron.git; cd flowtron; pip install -r requirements.txt; conda uninstall -y torch; pip install torch; python train.py -c config.json -p train_config.output_directory=outdirectory"
Could you share working Dockerfile for flowtron? Or are you root in the container?
Something along these lines:
FROM pytorch/pytorch:nightly-devel-cuda10.0-cudnn7
ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
RUN apt-get update -y
RUN apt-get install -y ffmpeg libsndfile1 sox locales vim
RUN pip install --upgrade pip
RUN pip install -U numpy
RUN pip install librosa soundfile audioread matplotlib Pillow tensorflow==1.15.2 tensorboardX inflect unidecode natsort jupyter
I've noticed with the Nvidia Torch images that if you run them as a "Normal" user, you lose the path information. So In the build process I generally add a user with my uid and then copy the PATH into my bashrc
I.E.
RUN adduser --gecos ",,,," --uid 9999 --home /home/myuser --disable-password --disable-login --shell /bin/bash myuser
RUN echo "export PATH=$PATH"':$PATH' >> /home/myuser/.bashrc