반응형

분류 전체보기 40

[Python] 여러 GPU중 특정 GPU만 사용하고 싶을 때

안녕하세요~ 저의 경우 GPU가 4개 달린 환경에서 학습을 진행하고 있습니다~ 학습 코드에서 GPU할당을 자동으로 나눠서 할당 하게끔 짜여있지만 종종 하나의 GPU에서만 동작 시키고 싶을 때가 있을겁니다. 그럴 경우 CUDA_VISIBLE_DEVICES = x 를 사용하시면 됩니다. 예를 들어 4개의 GPU중 4번 째 GPU만 사용하고 싶다! 그러면 CUDA_VISIBLE_DEVICES=3 python3 ~~ 다음과 같이 사용하시면 됩니다~ 읽어주셔서 감사합니다

python 2021.11.03

[python]확장자 일괄 변경

안녕하세요 작업을 하다 보면 이미지 확장자명을 하나로 통일시켜야 할 때가 있어요~ 이미지 파일 개수가 수만개 있으면 일일이 바꾸는데 시간이 오래 걸리니까 코드 몇 줄을 사용해서 해당 작업을 하는 편입니다~ 이번에 가져온 예제는 특정 디렉터리에 있는 파일을. png확장자에서. jpg로 바꿔주는 코드를 짜 봤어요~ 해당 코드에 주석으로 설명도 적어놨으니까 이해를 하고 실무에서 한번 사용해보세요~ import os import glob files = glob.glob("./JPEGImages/*.png") #원하는 디렉토리 설정 for name in files: if not os.path.isdir(name): #디렉토리는 포함 x src = os.path.splitext(name) #확장자와 파일명 구분 o..

python 2021.11.03

[논문리뷰] DropBlock: A regularization method forconvolutional networks

이번에 DropBlock논문을 읽고 이해한대로 써볼려고 합니다.. 잘못된 내용이 있을 시 댓글 달아주시면 감사하겠습니다 우선 논문내용 중에 중복된 내용은 skip을 하며 글을 써볼려고 합니다 Abstract Deep neural networks은 over-paramerterized 와 많은 양의 노이즈와 regularizatoin (weight decay, dropout)와 함께 학습할 때 잘 작동하는 경우가 있습니다. dropout이 regularization technique으로 fully connected layers에서 많이 사용되는 반면, convolutional layers에서는 효과적이지 않습니다. 왜냐하면 convolutional layers의 activation units가 공간적으로 상..

AI 2021.11.02

json to xml convert 작업[ 작성중..]

안녕하세요 데이터셋을 모으다보면 제가 사용하고있는 데이터로더의 형태와 맞지않은 annotation 파일들을 볼 수가 있습니다. 그런 경우 dataloader를 annotation파일에 맞게 수정을 진행을 하거나 annotation 파일 형식을 현재 제가 사용하고있는 dataloader형식에 맞추어 사용하고 있습니다. 이번에는 후자의 경우에 어떤식으로 바꾸는지 알아보는 시간을 가지도록 하겠습니다. 우선 제가 다운받은 데이터셋의 annotation 파일의 형태를 살펴봐야합니다. 그리고 제가 사용하고있는 dataloader는 어떤 데이터를 필요로 하는지 살펴봐야할텐데요. 여기서 제가 원하는 데이터는 category, box2d, name정도 입니다. import os import json from xml.et..

python 2021.10.22

매크로 함수의 문제점

매크로 함수는 컴파일 이전에 코드가 변환되기 때문에 일반 함수보다 속도가 빠릅니다. -> 일반 함수가 가지고 있는 호출 과정이 없기 때문에 속도에서 좋은 성능을 나타낸다. 하지만 매크로 함수로 인해 디버깅의 어려움이 있을 수도 있습니다. ex) #define max(x,y) ((x)>(y)?(x):(y)) 이는 max함수를 매크로 함수로 정의한 것입니다. 1. 첫번째 문제 하지만 개발자의 실수로 바깥 괄호를 빠뜨리고 매크로 함수를 정의했다고 가정하게된다면 #define max(x,y) (x)>(y)?(x):(y) "2*max(3,2)" 이라는 수식은 -> "2*(3)>(2)?(3):(2)"로 변환하게 되고 결과 값은 3이 나옵니다. 6을 예측했지만 3이나오게 되고 이를 디버깅하기는 찾기가 어렵습니다. 2..

알고리즘 2021.07.19

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
반응형