-
ESPnet 설치 및 CPU 예제 실행 (docker)ML/ESPnet 2020. 7. 22. 13:50반응형
ESPnet은 speech와 관련된 다양한 태스크를 end-to-end로 해결하려는 툴킷이다. Speech에 대한 연구를 하고 있는 입장으로서 ESPnet에 대한 공부를 시작해볼까 한다. 첫번째로 시도할 것은 가장 중요한 설치이다. 대강 설치하는 방법을 읽어보니 역시나 복잡하다. 이리저리 쓰는 패키지도 많고 Kaldi도 쓰고 PyTorch도 쓰고 CUDA도 쓰고... 하지만 docker를 지원하기 때문에 그냥 docker image 받아서 사용하려 한다.
espnet.github.io/espnet/docker.html
ESPnet 깃허브와 documentation을 참고해 예제를 진행해보았다.
1. git clone
우선 코드를 받자.
git clone https://github.com/espnet/espnet
2. 바로 실행?
espnet/docker에 run.sh를 실행하면 espnet에 맞는 docker image를 다운받고 가장 간단한 예제를 실행하게 된다. 전부 다 연결해놓았나 보다.
cd docker ./run.sh --docker-gpu 0 --docker-egs chime4/asr1 --docker-folders /export/corpora4/CHiME4/CHiME3 --dlayers 1 --ngpu 1
명령어를 실행하기 전에 argument들을 먼저 살펴보자.
- --docker-gpu 0 : 0번 gpu를 쓰겠다.
- --docker-egs chime4/asr1 : chime4라는 데이터셋을 이용해 asr1 모델로 예제를 실행하겠다.
- --docker-folders /export/corpora4/CHIME4/CHIME3 : 데이터셋의 경로.
- --dlayers 1 : dense layer 1개?
- --ngpu 1 : gpu를 1개 쓰겠다
하지만 CHIME3 데이터셋은 유료다... 공부하기 위해 데이터셋을 사고 싶지 않은 나는 다른 예제를 돌려보기로 했다.
3. an4 예제
an4 예제는 espnet에서 가장 간단한 예제로 홈페이지에 speech recognition 예제로 나와 있다. 또한 위에 링크 걸어놓은 docker 페이지에도 cpu 예제로 an4를 제공한다.
cd docker ./run.sh --docker-gpu -1 --docker-egs an4/asr1 --ngpu 0
CPU 예제이기 때문에 argument들이 굉장히 간단하다.
- --docker-gpu -1 : gpu 사용 안함
- --docker-egs an4/asr1 : an4라는 데이터셋을 가지고 asr1 모델로 코드를 실행한다.
- --ngpu 0 : gpu 사용 안함
이러하다. 실행하기 전에 예상되는 결과를 생각해보자. docker/run.sh를 읽어보면 알 수 있다.
(1) docker image 다운로드
(2) docker run espnet/espnet:cpu-u18 /bin/bash /egs/an4/asr1/run.sh ...
docker image를 다운 받고 컨테이너를 만들어 예제를 실행할 것이다. /egs/an4/asr1/run.sh를 실행하면 어떤 과정을 거칠까?
- stage 0: Data download (if available)
- stage 1: Kaldi-style data preparation
- stage 2: Save python-friendly data (e.g., JSON, HDF5, etc)
- stage 3: Language model training
- stage 4: ASR model training
- stage 5: Decoding and evaluation
라는 과정을 거친다고 설명한다.
cd docker ./run.sh --docker-gpu -1 --docker-egs an4/asr1 --ngpu 0
실행해보자. 참고로 stage 4: Network Training에서 cpu만을 가지고 학습하는 것이 너무 오래 걸린다...
output:
stage 0: data download ... write a CER (or TER) result in exp/train_nodev_pytorch_train_mtlalpha1.0/decode_test_decode_ctcweight1.0_lm_word100/result.txt | SPKR | # Snt # Wrd | Corr Sub Del Ins Err S.Err | | Sum/Avg | 130 2565 | 90.8 4.6 4.6 1.2 10.4 57.7 |
이렇게 결과를 얻을 수 있었다.
lanuage, --dlayers
출처:
반응형'ML > ESPnet' 카테고리의 다른 글
ESPnet an4 예제 실행하기 (GPU) (1) 2020.07.23