개발/딥러닝, Computer Vision
011. Open-cv, cv2: ImportError: libGL.so.1: cannot open shared object file: No such file or directory
python 에서 cv2를 사용하려고 설치한 후에 다음과 같은 오류 메시지를 볼 수 있다. ImportError: libGL.so.1: cannot open shared object file: No such file or directory 다음 명령어로 라이브러리를 설치해주면 정상동작한다. RUN apt-get update RUN apt-get install ffmpeg libsm6 libxext6 -y
002. 모델 계산량, FLOPs vs MAC, FLOPs vs FLOPS
딥러닝에서 계산량은 파라미터와 함께 모델이 얼마나 큰지, 효율적인지를 나타내는 지표이다. 계산량은 보통 FLOPs(FLoating point OPerations) 혹은 MAC(Multiply–ACcumulate)으로 나타낸다. 대부분의 현대 하드웨어는 tensor를 다루는 연산을 할때 FMA라고 하는 명령어 셋을 사용한다. FMA는 a*x+b를 하나의 연산(operation)으로 처리를 하고 이 연산이 몇번 실행되었는지를 세는 것이 MAC이다. FLOPs는 덧셈, 곱셈을 하나 하나의 연산으로 보기 때문에 일반적으로 MACs : FLOPs = 1 : 2(덧셈 1회, 곱셈 1회)가 된다. 따라서 MAC을 FLOPs로 변환할 때는 2를 곱하면 되고, 반대의 경우엔 2로 나눠주면 된다. 100 MACs = 2*..
001. Torchvision 0.8, GPU에서 돌아가는 Scriptable Transforms 사용해서 데이터 로딩 속도 개선하기
Torchvision 0.8 에서 새롭게 나온 기능중 가장 유용하고 기다려왔던 기능입니다. 바로 Transform이 Tensor, Batch computation, GPU and TorchScript를 지원합니다! 상세한 릴리즈 노트는 여기를 확인해 주세요. 이 포스트에서는 해당 기능을 이용해서 CIFAR, ImageNet을 Loading 하는 코드를 작성하고, 실제로 얼마나 빨라지는지 실험을 해보겠습니다.본 포스트에서 사용한 모든 코드는 여기에서 확인하세요. Star도 꾹 눌러주세요 ^^사용법기존의 Transform은 transform.compose를 이용해서 dataset의 transform 파라미터에 넣어주었습니다.original_transforms = transforms.Compose([ tran..