idekazuki / diary

記録
0 stars 1 forks source link

SlowFast model 環境構築 #67

Open idekazuki opened 4 years ago

idekazuki commented 4 years ago

https://github.com/facebookresearch/SlowFast/blob/master/INSTALL.md 上記に従って環境構築を行う。

git clone https://github.com/facebookresearch/slowfast

export PYTHONPATH=/path/to/PySlowFast/lib:$PYTHONPATH とあるが、研究室環境では setenv PYTHONPATH /home/yanai-lab/ide-k/ide-k/out_git/SlowFast:/host/home/yanai-lab/Sotsuken18/ide-k/.local/lib/python3.6/site-packages

このようにcshrcに書き込んだ。slowfastのパスと、pip install --userの時のdownload場所をPYTHONPATHとして定義した。

python setup.py build developを実行するが、保存場所を指定したいのでhttp://flame-blaze.net/question/setup-py-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E5%85%88%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%AE%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B に従って以下のように実行した。 python setup.py install --install-purelib /host/home/yanai-lab/Sotsuken18/ide-k/.local/lib/python3.6/site-packages

すると実行中に次のようなエラーが出た。

writing build/temp.linux-x86_64-3.6/include/pyav/config.h
In file included from src/av/packet.c:661:0:
include/libavcodec/avcodec.pyav.h:4:6: error: #error FFmpeg 3.2 or higher is required
     #error FFmpeg 3.2 or higher is required
      ^
error: Setup script exited with error: command 'gcc' failed with exit status 1

検索した結果似た事例が次のサイトに載っていた。https://github.com/aiortc/aiortc/issues/122 setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig を実行したが、同じエラーが出た。

ffmpegのversionが違うと言われているが。ffmpeg -version を実行すると

ffmpeg version 3.3.4-static http://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 6.4.0 (Debian 6.4.0-4) 20170820

と表示され、3.2よりも高いversionであることがわかる。 ちなみにこのffmpegは研究室のフォルダではなく、localのフォルダにversion3.3.4のファイルをdownloadしてそれにパスを通して使用している。

解決方法がわからないのでとりあえず現時点でやったことをまとめた。

idekazuki commented 4 years ago

Slowfastの必要環境を確認するとgccのversionが4.9以上でなければならないが、研究室のgccは4.8だったのでloacalで4.9をビルドしてみた。 以下の記事に従って実行した。 https://qiita.com/ykatsu111/items/bb5adc363e4f1a2b475c LD_LIBRALY_PATHに追加してdefaultで使用できるように設定したが、それでも動かなかった。 pip install 時に参照するパスが通常のものと異なる可能性がある?

idekazuki commented 4 years ago

ffmpegのversionを指定するためのパスを発見した https://github.com/mikeboers/PyAV/blob/develop/setup.py#L132 これにFFmpegのパスを設定したところpyavはinstallできたものの、新しいエラーが発生した。

Installing pyav script to /usr/local/anaconda3/bin error: [Errno 13] Permission denied: '/usr/local/anaconda3/bin/pyav'

idekazuki commented 4 years ago

早速実行してみた。 setenv PYTHONPATH /home/yanai-lab/ide-k/ide-k/out_git/SlowFast python tools/run_net.py --cfg configs/Kinetics/C2D_8x8_R50.yaml NUM_GPUS 1 TRAIN.BATCH_SIZE 8 SOLVER.BASE_LR 0.0125 DATA.PATH_TO_DATA_DIR /export/data/dataset/Kinetics/ 案の定エラーが出た。

Traceback (most recent call last):
  File "tools/run_net.py", line 14, in <module>
    from test_net import test
  File "/host/space0/ide-k/out_git/SlowFast/tools/test_net.py", line 14, in <module>
    from slowfast.datasets import loader
  File "/home/yanai-lab/ide-k/ide-k/out_git/SlowFast/slowfast/datasets/loader.py", line 10, in <module>
    from slowfast.datasets.kinetics import Kinetics
  File "/home/yanai-lab/ide-k/ide-k/out_git/SlowFast/slowfast/datasets/kinetics.py", line 12, in <module>
    import slowfast.datasets.video_container as container
  File "/home/yanai-lab/ide-k/ide-k/out_git/SlowFast/slowfast/datasets/video_container.py", line 4, in <module>
    import av
  File "/home/yanai-lab/ide-k/.local/lib/python3.6/site-packages/av-6.2.0-py3.6-linux-x86_64.egg/av/__init__.py", line 15, in <module>
    from av.audio.fifo import AudioFifo
  File "/home/yanai-lab/ide-k/.local/lib/python3.6/site-packages/av-6.2.0-py3.6-linux-x86_64.egg/av/audio/__init__.py", line 1, in <module>
    from .frame import AudioFrame
  File "av/audio/frame.pyx", line 1, in init av.audio.frame
  File "av/codec/codec.pxd", line 4, in init av.frame
  File "/home/yanai-lab/ide-k/.local/lib/python3.6/site-packages/av-6.2.0-py3.6-linux-x86_64.egg/av/codec/__init__.py", line 1, in <module>
    from .codec import Codec, codecs_available, codec_descriptor
ImportError: /home/yanai-lab/ide-k/.local/lib/python3.6/site-packages/av-6.2.0-py3.6-linux-x86_64.egg/av/codec/codec.cpython-36m-x86_64-linux-gnu.so: undefined symbol: av_codec_iterate
idekazuki commented 4 years ago

python setup.py install --user

を実行したら


Using /usr/local/anaconda3/lib/python3.6/site-packages
Finished processing dependencies for slowfast==1.0

と表示された!!!