Computer Vision

    [딥러닝/머신러닝] batch size가 2의 제곱수인 이유

    batch size가 보통 데이터가 작을 때는 2, 4, 8, 16 ... 등의 2의 제곱수로 code를 짜더라. 왜 그런지 몰랐다. 그 이유는 CPU와 GPU의 메모리가 2의 배수 이므로 배치 크기가 2의 제곱수일 경우에 데이터 송수신의 효율이 가장 높다고 한다. 관용인줄 알았는데.. 역시 효율적인 컴공이다 내 컴퓨팅 리소스가 좋다면, 내가 시간이 많다면, 홀수로다가 한번 해보면서 효율이 얼만큼 차이가 나는지 궁금하긴하네 해보신 분들은 댓글 달아주시면 감사하겠습니다.

    [PyTorch & Numpy] 기본 텐서 다루는법의 차이점

    PyTorch 공부하다가 궁금해진 tensor들 공부하다가 계속 파고드는중에 찾은 나의 개념 오류를 정리하고자한다. 1. PyTorch Tensor Shape Convection 1.1 2D Tensor 1.2 3D Tensor 1.2.1 for Computer Vision (batch size, width, height) (배치사이즈, 너비, 높이) 1.2.2 for NLP (batch size, length, dim) (배치 사이즈, 문장 길이, 단어 벡터의 차원) 2. Numpy로 Tensor 만들기(벡터와 행렬 만들기) 2.1 1D with Numpy ndim : 몇 차원인지 shape : 크기 출력 import numpy as np t = np.array([0., 1., 2., 3., 4., 5..

    [PyTorch] GPU에 텐서 할당하기

    텐서를 생성할 때 device 옵션으로 cpu와 cuda(gpu)를 선택할 수 있다. (아래 사진 참조, cpu와 cuda(gpu) 말고도 opengl, opencl 등등 더 많은 옵션을 선택할 수 있는 듯 하다.) 주석 보면서 이해하자. import torch cpu_tensor = torch.zeros(2, 3, device = "cpu") # cpu로 설정한 2행 3열 영행렬을 cpu_tensor라는 변수에 저장. print(cpu_tensor) device = torch.device("cuda") # cuda(gpu)를 device라는 변수에 저장하고 gpu_tensor = cpu_tensor.to(device) # cpu에 올라간 텐서를 gpu로 옮기는게 to()다. print(gpu_tenso..

    2장. OpenCV으로 데이터 작업

    2장 에서는 몇가지 기본적인 OpenCV 기능을 살펴본다. 목차. 머신러닝 워크플로의 이해 OpenCV와 파이썬을 사용한 데이터 취급 파이썬 NumPy 패키지를 사용한 데이터 취급 NumPy 가져오기 NumPy 배열의 이해 인덱싱을 통해 단일 배열 요소에 액세스 다차원 배열 만들기 파이썬에서 외부 데이터 세트 불러오기 Matplotlib을 사용한 데이터 시각화 외부 데이터 세트의 데이터 시각화 C++에서 OpenCV의 TrainData 컨테이너를 사용해 데이터 다루기 요약 앞서 머신러닝은 인공지능의 하위 분야로 설명했음. 이러한 명제는 사실이지만, 대부분의 경우 머신러닝은 단순히 데이터를 이해하는 과정에 불과함. 그러므로 머신러닝을 데이터 과학의 하위 분야로 생각하는 것이 더 적합. 여기서는 데이터를 이..

    1장. 머신러닝 시작

    1장 에서는 이 책에 필요한 소프트웨어와 파이썬 모듈을 설치하는 방법을 설명한다. 목차기술적 요구사항머신러닝 시작머신러닝으로 해결할 수 있는 문제지도 학습 (supervised learning)비지도 학습 (unsupervised learning)강화 학습 (reinforcement learning)파이썬 시작OpenCV 시작설치이 책의 최신 코드 얻기파이썬의 아나콘다 배포판conda 환경에서 OpenCV 설치설치 확인OpenCV의 ML 모듈 엿보기머신러닝의 응용OpenCV 4.0의 새로운 기능요약 컴퓨터 비전은 자율주행 자동차와 구글의 딥마인드(DeepMind)같은 혁신적인 시스템을 주도하는 딥러닝 및 컨볼루션 신경망(CNN, Convoultional Neural Networks)과 함께 머신러닝의 가..

    OpenCV 4를 활용한 머신러닝 입문 MACHINE LEARNING for OPENCV 4 / Computer Vision 책추천

    OpenCV 4를 활용한 머신러닝 입문 ( MACHINE LEARNING for OPENCV 4 ) Computer Vision Capstone Design Project를 진행하기에 앞서서 구체적으로 이론공부를 하기위해서 저희 학교 도서관에서 빌렸습니다. 책 내용정리 + Focusing 해야하는 부분 을 정리해놓을테니 독자분들도 참고하시어같이 발전해나갔으면 좋겠습니다. 차근차근 3부까지 다루겠습니다. 거두절미하고 시작하겠습니다🙌. 아래는, 전체적인 목차와 링크를 달아놓았습니다. -1부 머신러닝과 OpenCV의 기본원리- 필수 라이브러리 설치를 시작으로 머신러닝과 OpenCV의 기본, 지도학습의 기본, 그 응용을 다루고, 마지막으로 OpenCV를 이용한 특징 검출과 인식 방법을 살펴본다. 1장 머신러닝 ..

    MobileNetV3 논문 리뷰

    논문 * https://arxiv.org/abs/1905.02244 개요 우리는 새로운 아키텍처 디자인 뿐만 아니라 상호 보완적인 검색 기술들의 결합을 기반으로 한 MobileNets의 다음세대를 제시함. MobieNetV3는 NetAdapt 알고리즘으로 보완된 하드웨어-인식(Hardware-aware) 네트워크 아키텍처 탐색 (Network Architecture Search, NAS)의 결합을 통해 모바일 폰의 CPUs에 맞춰 튜닝되며, 그런 다음 새로운 아키텍처의 개발을 통해 상당히 개선됬음. 이 논문은 자동화된 탐색 알고리즘과 네트워크 설계가 기술의 전반적인 상태를 개선시키는 보완적 방법을 활용하여 어떻게 상호작용 하는지에 대한 탐색을 시작함. 이 과정을 통해, 우리는 배포를 위한 두 가지 새로운..

    Computer Vision, 컴퓨터비전에서 가장 많이 다뤄지는 문제들 (Classification, Localization/Detection, Segmentation)

    Classification, 분류 : 인풋에 대해서 하나의 레이블을 예측하는 작업. ex) AlexNet, ResNet, Xception 등의 모델 Localization / Detection, 발견 : 물체의 레이블을 예측하면서 그 물체가 어디에 있는지 정보를 제공. 물체가 있는 곳에 네모를 그리는 등.. ex) YOLO, R-CNN 등의 모델 Segmentation, 분할 : 모든 픽셀의 레이블을 예측 ex) FCN, SegNet, DeepLab 등의 모델 Semantic Image Segmentation(직역 : 의미론적인 이미지 분할)의 목적은 사진에 있는 모든 픽셀을 해당하는 class로 분류하는 것임. (이 class는 미리 지정되어있음.) 이미지에 있는 모든 픽셀에 대한 예측을 하는 것이기 ..