From 15575db29e74ea4d57d2f79f11e99cb2d1217827 Mon Sep 17 00:00:00 2001 From: Jintao Lin Date: Fri, 28 Aug 2020 01:20:57 +0800 Subject: [PATCH] Use `collect_env` from mmcv (#149) --- docs/install.md | 2 +- mmaction/utils/collect_env.py | 50 ++------------------------ requirements/runtime.txt | 2 +- setup.cfg | 2 +- tests/test_utils.py | 66 ----------------------------------- 5 files changed, 5 insertions(+), 117 deletions(-) delete mode 100644 tests/test_utils.py diff --git a/docs/install.md b/docs/install.md index 1f7adf0..de7ea50 100644 --- a/docs/install.md +++ b/docs/install.md @@ -7,7 +7,7 @@ - PyTorch 1.3+ - CUDA 9.2+ (If you build PyTorch from source, CUDA 9.0 is also compatible) - GCC 5+ -- [mmcv](https://github.com/open-mmlab/mmcv) 0.5.7+ +- [mmcv](https://github.com/open-mmlab/mmcv) 1.1.1+ - Numpy - ffmpeg (4.2 is preferred) - [decord](https://github.com/dmlc/decord) (optional): Install CPU version by `pip install decord` and install GPU version from source diff --git a/mmaction/utils/collect_env.py b/mmaction/utils/collect_env.py index cae4fea..23682c7 100644 --- a/mmaction/utils/collect_env.py +++ b/mmaction/utils/collect_env.py @@ -1,56 +1,10 @@ -import os.path as osp -import subprocess -import sys -from collections import defaultdict - -import cv2 -import mmcv -import torch -import torchvision -from mmcv.utils import CUDA_HOME, get_build_config +from mmcv.utils import collect_env as collect_basic_env import mmaction def collect_env(): - """Collect environment variables.""" - env_info = {} - env_info['sys.platform'] = sys.platform - env_info['Python'] = sys.version.replace('\n', '') - - cuda_available = torch.cuda.is_available() - env_info['CUDA available'] = cuda_available - - if cuda_available: - env_info['CUDA_HOME'] = CUDA_HOME - - if CUDA_HOME is not None and osp.isdir(CUDA_HOME): - try: - nvcc = osp.join(CUDA_HOME, 'bin/nvcc') - nvcc = subprocess.check_output( - '"{}" -V | tail -n1'.format(nvcc), shell=True) - nvcc = nvcc.decode('utf-8').strip() - except subprocess.SubprocessError: - nvcc = 'Not Available' - env_info['NVCC'] = nvcc - - devices = defaultdict(list) - for k in range(torch.cuda.device_count()): - devices[torch.cuda.get_device_name(k)].append(str(k)) - for name, devids in devices.items(): - env_info['GPU ' + ','.join(devids)] = name - - gcc = subprocess.check_output('gcc --version | head -n1', shell=True) - gcc = gcc.decode('utf-8').strip() - env_info['GCC'] = gcc - - env_info['PyTorch'] = torch.__version__ - env_info['PyTorch compiling details'] = get_build_config() - env_info['TorchVision'] = torchvision.__version__ - - env_info['OpenCV'] = cv2.__version__ - - env_info['MMCV'] = mmcv.__version__ + env_info = collect_basic_env() env_info['MMAction2'] = mmaction.__version__ return env_info diff --git a/requirements/runtime.txt b/requirements/runtime.txt index 537e010..15e1322 100644 --- a/requirements/runtime.txt +++ b/requirements/runtime.txt @@ -1,5 +1,5 @@ matplotlib -mmcv +mmcv>=1.1.1 numpy opencv-contrib-python Pillow diff --git a/setup.cfg b/setup.cfg index 0ab7028..e720d52 100644 --- a/setup.cfg +++ b/setup.cfg @@ -19,6 +19,6 @@ line_length = 79 multi_line_output = 0 known_standard_library = pkg_resources,setuptools known_first_party = mmaction -known_third_party = cv2,joblib,matplotlib,mmcv,numpy,pandas,pytest,scipy,seaborn,torch,torchvision +known_third_party = cv2,joblib,matplotlib,mmcv,numpy,pandas,pytest,scipy,seaborn,torch no_lines_before = STDLIB,LOCALFOLDER default_section = THIRDPARTY diff --git a/tests/test_utils.py b/tests/test_utils.py deleted file mode 100644 index 99546ee..0000000 --- a/tests/test_utils.py +++ /dev/null @@ -1,66 +0,0 @@ -import os.path as osp -import subprocess -import sys -from collections import defaultdict - -import cv2 -import mmcv -import torch -import torchvision -from mmcv.utils import CUDA_HOME, get_build_config - -import mmaction -from mmaction.utils import collect_env - - -def test_collect_env(): - env_info = collect_env() - target_keys = [ - 'sys.platform', 'Python', 'CUDA available', 'GCC', 'PyTorch', - 'PyTorch compiling details', 'TorchVision', 'OpenCV', 'MMCV', - 'MMAction2' - ] - cuda_available = torch.cuda.is_available() - if cuda_available: - cuda_keys = ['CUDA_HOME', 'NVCC'] - devices = defaultdict(list) - devices_dict = dict() - for k in range(torch.cuda.device_count()): - devices[torch.cuda.get_device_name(k)].append(str(k)) - for name, devids in devices.items(): - devices_dict['GPU ' + ','.join(devids)] = name - cuda_keys.append('GPU ' + ','.join(devids)) - target_keys.extend(cuda_keys) - - assert set(env_info.keys()) == set(target_keys) - assert env_info['sys.platform'] == sys.platform - assert env_info['Python'] == sys.version.replace('\n', '') - assert env_info['CUDA available'] == cuda_available - if cuda_available: - assert env_info['CUDA_HOME'] == CUDA_HOME - if CUDA_HOME is not None and osp.isdir(CUDA_HOME): - try: - nvcc = osp.join(CUDA_HOME, 'bin/nvcc') - nvcc = subprocess.check_output( - '"{}" -V | tail -n1'.format(nvcc), shell=True) - nvcc = nvcc.decode('utf-8').strip() - except subprocess.SubprocessError: - nvcc = 'Not Available' - assert env_info['NVCC'] == nvcc - - for k, v in devices_dict.items(): - assert env_info[k] == v - - gcc = subprocess.check_output('gcc --version | head -n1', shell=True) - gcc = gcc.decode('utf-8').strip() - assert env_info['GCC'] == gcc - - assert env_info['PyTorch'] == torch.__version__ - assert env_info['PyTorch compiling details'] == get_build_config() - - assert env_info['TorchVision'] == torchvision.__version__ - - assert env_info['OpenCV'] == cv2.__version__ - - assert env_info['MMCV'] == mmcv.__version__ - assert env_info['MMAction2'] == mmaction.__version__ -- GitLab