|
|
@@ -1,4 +1,6 @@ |
|
|
|
# PyTorch utils |
|
|
|
# YOLOv5 PyTorch utils |
|
|
|
|
|
|
|
import datetime |
|
|
|
import logging |
|
|
|
import math |
|
|
|
import os |
|
|
@@ -43,9 +45,15 @@ def init_torch_seeds(seed=0): |
|
|
|
cudnn.benchmark, cudnn.deterministic = True, False |
|
|
|
|
|
|
|
|
|
|
|
def git_describe(): |
|
|
|
def date_modified(path=__file__): |
|
|
|
# return human-readable file modification date, i.e. '2021-3-26' |
|
|
|
t = datetime.datetime.fromtimestamp(Path(path).stat().st_mtime) |
|
|
|
return f'{t.year}-{t.month}-{t.day}' |
|
|
|
|
|
|
|
|
|
|
|
def git_describe(path=Path(__file__).parent): # path must be a directory |
|
|
|
# return human-readable git description, i.e. v5.0-5-g3e25f1e https://git-scm.com/docs/git-describe |
|
|
|
s = f'git -C {Path(__file__).resolve().parent} describe --tags --long --always' |
|
|
|
s = f'git -C {path} describe --tags --long --always' |
|
|
|
try: |
|
|
|
return subprocess.check_output(s, shell=True).decode()[:-1] |
|
|
|
except subprocess.CalledProcessError as e: |
|
|
@@ -54,7 +62,7 @@ def git_describe(): |
|
|
|
|
|
|
|
def select_device(device='', batch_size=None): |
|
|
|
# device = 'cpu' or '0' or '0,1,2,3' |
|
|
|
s = f'YOLOv5 🚀 {git_describe()} torch {torch.__version__} ' # string |
|
|
|
s = f'YOLOv5 🚀 {git_describe() or date_modified()} torch {torch.__version__} ' # string |
|
|
|
cpu = device.lower() == 'cpu' |
|
|
|
if cpu: |
|
|
|
os.environ['CUDA_VISIBLE_DEVICES'] = '-1' # force torch.cuda.is_available() = False |