반응형

분류 전체보기 45

Distance-IOU Loss (DIOU) 논문 리뷰

일반적으로 현재 존재하는 object detection 방법에는 3가지로 분류할 수 있습니다. - one-stage detection : YOLO series, SSD etc... - two-stage detection : R-CNN series etc.. - multi-stage detection : Cascade R-CNN 이렇게 다른 detection frameworks를 가지고 있지만 bounding box regression 인 target의 위치를 예측하는 사각형 박스는 중요한 단계로 취급됩니다. 현재 가장 대중적으로 사용되고 있는 boundign box regression 방법은 IOU방법입니다. 보통 L1-norm이나 L2-norm loss를 B^gt와 B의 distance loss을 측정..

AI 2021.07.12

[python] list함수 (append, insert, pop, remove, sort)

안녕하세요 파이썬을 많이 접해보지 않았으면 튜플, 리스트 들이 갖고있는 인스턴스 메서드는 어떤 것이 있는지, 또는 어떻게 사용해야하는지 헷갈릴 때가 종종있는데요. list를 사용할 때 많이 사용되는 메서드를 정리해서 알려드리고합니다. 우선 list함수는 이터레이터나 제너레이터 표현에서 실제 값을 모두 담기 위한 용도로 자주 사용됩니다. 해당 코드를 보시면 이해가 빠를겁니다. 여전히 이해가 잘 안되시면 댓글을 달아주시면 감사하겠습니다

python 2021.06.29

오차역전파-1 (딥러닝) 곱셉노드, 덧셈노드

안녕하세요 오늘은 오차역전파에대해서 간략히 소개드릴려고합니다. 오차역전파는 딥러닝 시 언제 사용되는지 아시나요? 특정 모델을 학습시키게 되면 손실값(loss)을 출력한다는 사실을 알고 있다는 전제하에 설명하겠습니다. 우리가 원하는 쪽으로 학습을 시키기 위해서는 각 weight 값의 손실 기울기를 알 수 있다면 손실의 기울기를 가지고 optimizer을 통해 weight 값을 갱신 할 수 있습니다. 그럼 여기서 손실 기울기를 구하는 방법이 바로 오차역전파를 통해서 구해집니다. 위에 그림은 z = x + y를 나타내는 계산 그래프입니다. 이거를 좀더 복잡한 계산이 있다고 가정하게되면 다음과 같은 그림이 될 수 있습니다. 여기서 순전파는 앞서 계산한거 처럼 어떤계산을 거친 x 와 어떤계산을 거친 y를 더한 값..

AI 2021.06.20

[CUDA] nvcc가 안될 때 ~/.bashrc 수정

CUDA를 정상적으로 깔아도 nvcc가 안될 때가 있다. bashrc에 환경변수를 추가하지 않아서 그렇다. export로 환경변수를 추가해준 뒤에 CUDA 사용이 정상적으로 가능하다. 매번 구글링해서 구문 찾기 귀찮아서 포스팅해둔다. $ sudo vi ~/.bashrc .bashrc 맨 끝에 다음 두 줄을 추가하자. 추가할 때 자신의 cuda 버전에 맞는 숫자 기입하는 거 잊지 말기 export PATH="/usr/local/cuda-11.0/bin:$PATH" export LD_LIBRARY_PATH="/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH" 그다음은 수정된 bashrc 현재 터미널에 적용 $ source ~/.bashrc

리눅스 2021.03.23

커널 특정 모듈 빌드

http://tmdgus.tistory.com/116 http://www.troot.co.kr/tc/2671 http://stackoverflow.com/questions/16360689/invalid-parameters-error-when-trying-to-insert-module-that-accesses-exported-s - insert module 시 Invaild parameters 오류 발생시, 모듈 컴파일시 undefined 오류 발생시 해결법 1. 특정 모듈 컴파일시 필요한것 1. 커널 소스 헤더와 의존되는 모듈이 있다면 해당 모듈의 심볼 테이블이다. 심볼 테이블의 이름은 Module.symvers 이다. 심볼 테이블은 모듈을 컴파일하면 해당 디렉토리에 생성되며 함수의 위치 정보를 가지고 ..

리눅스 2021.03.17

딥러닝에서 필터의 개수는 왜 증가할까

보통 모델들을 보면 layer가 뒤로갈 수록 filter의 총 개수가 많아지는걸 볼 수 있습니다. 그 이유는 두 가지 측면에서 해석 해 볼 수 있습니다. 첫 번째는 연산량때문입니다. 처음에는 이미지크기가 크기 때문에 적은 수의 필터 개수로 계산을 해도 굉장히 많은 연산을 하게 됩니다. 하지만 계층이 깊어질수록 feature map크기가 매우 작아지게 되는데 이때는 많은 필터의 개수로 연산을 해도 생각보다 많은 연산량을 안잡아 먹기 때문입니다. 두 번째는 추출한 feature map 의 형태입니다. 보통 초반에는 이미지로부터 edge데이터를 추출하게 됩니다. 그렇기 때문에 많은 형태의 필터개수가 필요가 없습니다. 하지만 feature map이 작아질 수록 점점 추상적인 데이터를 추출하기 시작합니다. 따라서..

AI 2021.01.27

[논문 정리] mobilenetV2: Inverted Residuals and Linear Bottlenecks

안녕하십니까 오늘은 논문 정리를 진행하려고 합니다. 직접 읽고 제가 생각한 바를 적는 공간이라 틀린 부분이 있을 수도 있습니다. 궁금한 점이 있거나 수정해야 할 부분이 있으면 댓글 부탁드립니다. 처음으로 논문정리할 논문은 mobilenetV2: Inverted Residuals and Linear Bottlenecks입니다!! 시작하겠습니다 1. Introduction 요약하자면 이 논문에서는 새로운 네트워크 아키텍쳐를 소개할 것이다. 이는 모바일이나 리소스가 제약된 환경을 위한 것이다. 그리고 같은 정확도를 가지면서도 연산수를 크게 줄이고 사용되는 메모리를 줄여준다. 정도입니다. 2. Related Work 이 논문 출시 유명했던 네트워크에대해서 언급하고 이들은 하나의 단점이 있다면서 바로 네트워크가 ..

AI 2021.01.26

c++ 클래스란 무엇일까

일반적으로 c++의 클래스는 구조체 보다 더 효과적인 문법입니다. 구조체와 클래스는 거의 흡사하게 동작하지만, 클래스에는 내부적으로 '함수' 등을 포함할 수 있습니다. 또한 클래스는 상속 등의 개념을 프로그래밍에서 그대로 이용할 수 있다는 점에서 객체 재향 프로그래밍을 가능하도록 해주는 기본적인 단위입니다. 여기서 상속이라는게 무엇일까요? 저희가 아는 상속이라는 의미와 일맥상통하다고 생각하시면 될 거 같아요! 그럼 구조체와 클래스의 차이점을 코드를 통해 알아볼까요 구조체 ------------------------------------------------------ #include #include using namespace std; struct Person { string name; int age; ..

C-language 2021.01.24

c언어 전처리기란 무엇일까요?

전처리기란? - 다른 프로그램 영역과 독립적으로 처리해주는 기능 - 소스코드 파일 단위로 효력이 존재 이렇게만 표현하면 확 와닿지 않을겁니다! 좀 더 쉽게 표현하자면 #define처럼 치환의 역할을 하기도 하고, 디버깅에도 도움을 주며 헤더파일의 중복 포함도 방지해주는 놈이라고 생각하시면 됩니다. 그리고 전처리기에는 다양한 종류가 있는데 한번 살펴보도록 하겠습니다. 파일 포함 전처리기 1) #include는 전처리기에서 가장 많이 사용되는 문법입니다. 2) 특정한 파일을 라이브러리로서 포함시키기 위해 사용합니다. 3) #include 구문으로 가져 올 수 있는 파일에는 제약이 없습니다. 형태 #include "파일 이름" - 현재 폴더에서 파일을 먼저 검색합니다. - 만약 현재 폴더에 파일이 없다면 시스..

C-language 2021.01.24
반응형