반응형

전체 글 40

리눅스 tar, tar.gz 압축 및 해제

tar로 압축하기 tar -cvf [파일명.tar] [폴더명] ex) kim이라는 폴더를 kim.tar로 압축한다면 tar -cvf kim.tar kim tar를 압축 풀기 tar -xvf [파일명.tar] ex) kim.tar을 압축을 풀기위해서는 tar -xvf kim.tar tar.gz로 압축하기 tar -zcvf [파일명.tar.gz] ex) kim 이라는 폴더를 kim.tar.gz로 압축하기위해서는 tar -zcvf kim.tar.gz kim tar.gz를 압축 풀기 tar -zxvf [파일명.tar.gz] ex) kim.tar.gz을 압축 풀기 위해서는 tar -zxvf kim.tar.gz tar 명령어의 옵션에 대해서도 간략하게 표로 나타내보겠습니다. 옵션 설명 -f 대상 tar 아카이브 지..

리눅스 2021.11.16

[Pytorch] LENET5 모델 학습 및 추론 코드(마스크 구별 프로그램)

안녕하세요 LENET5모델을 활용하여 Pytorch를 통해 학습시키는 과정을 해볼려고 합니다. 우선 전체 코드 공유해드릴게요~ import torch import torch.nn as nn import torch.nn.functional as F from torch.utils.data import Dataset, DataLoader from PIL import Image import os import torchvision.transforms as transforms from torchsummary import summary from torch import optim from datetime import datetime ##path define DATASET_PATH = './dataset/' EPOCHS..

AI 2021.11.11

tensorflow zoo && tensorflow detection api 사용하여 tflite파일 만드는 과정

안녕하세요 tensorflow zoo와 tensorflow detection api를 사용하여 tflite파일을 만드는 과정에 대해서 설명드리고자 합니다. https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2.md -> Object Detection API with TensorFlow 2 하나의 디렉토리를 만듭니다.(~디렉토리에 만든다고 가정할게요, 계속 나올거니까 유의하세요~) mkdir ~/tensorflow 그리고 Object Detection API를 설치하기 위해서는 protobuf-compiler를 설치해야합니다. (tensorflow는 파일 저장 포맷을 프로토콜 버퍼를 사용하고, 컴파일 하기위해..

AI 2021.11.10

RuntimeError: stack expects each tensor to be equal size, but got ~

안녕하세요 pytorch를 사용하여 학습 및 추론을 진행 할 때 RuntimeError: stack expects each tensor to be equal size, but got ~과 같은 에러가 DataLoader에서 발생하는 경우가 종종 있습니다. 해당 에러는 사용하는 데이터셋의 이미지의 사이즈가 서로 달라서입니다. 사이즈가 다르게되면 Array나 Tensor의 각 차원이 동일하지 않기 때문에 batch형태로 묶어줄 수 없기 때문에 발생합니다. 따라서 해결하기 위해서는 torchvision에서 제공하는 transforms.resize()함수를 사용하거나 그 외에 다양한 방법으로 Resize를 진행해주시면 됩니다. import torchvision.transforms as transforms tra..

AI 2021.11.09

RuntimeError: The size of tensor a (4) must match the size of tensor b (3) at non-singleton dimension 0

안녕하세요 Pytorch를 사용하여 학습을 진행하는 과정에서 DataLoader를 진행하는 과정에서 다음과 같은 에러가 발생하는걸 종종 확인 할 수 있습니다. 저의 케이스에서는 학습 시킬 이미지 중에 채널이 3개만 있는 이미지 뿐만 아니라 채널이 4개가 있는 이미지가 포함되어 있을 때 발생합니다. 왜냐하면 저의 경우 normalize를 ((0.5,0.5,0.5),(0.5,0.5,0.5)) 3개의 채널에 대해서만 진행을 하기 때문입니다. 따라서 이 에러를 해결하기 위해서는 Dataset 클래스에서 이미지를 불러올 다음과 같이 수정했습니다. image = Image.open(self.img_list[idx]) -> image = Image.open(self.img_list[idx]).convert('RGB'..

AI 2021.11.09

[python] class 오버라이딩(overriding), 상속, super()

안녕하세요, 파이썬은 객체지향 언어이다 보니 class을 사용하여 코딩을 하는 경우가 많습니다~ class을 사용하다보면 상속 및 오버라이딩을 종종 접하게 되는데 해당 내용에대해서 간단하게 알아보겠습니다. 상속와 오버라이딩 둘다 포함되어있는 예제코드를 우선 살펴보겠습니다. 그림을 보시면 parent()가 부모 클래스이고 daughter() 클래스와 son() 클래스가 parent클래스를 상속받는 것을 확인 할 수 있습니다. 그리고 son(), daughter() 클래스를 인스턴스화 시키고 실행 시켜본 결과 오버라이딩된 결과 또는 상속받은걸 그대로 내뱉는 결과들을 확인 하실 수 있습니다~ 그 다음으로, super()에 대해서도 같이 알아보겠습니다. super명령어는 상속 관계에서 상속의 대상인 부모 클래스..

python 2021.11.09

torch.nn 과 torch.nn.functional 차이점!

안녕하세요~ pytorch 를 활용한 레퍼런스 코드를 보기위해 git에 돌아다니다보면 layer 및 activation Function 을 구현할 때 torch.nn.Dropout 를 쓰는 경우도 있고, torch.nn.functional.dropout 을 쓰는 경우도 있습니다. 같은 dropout인데 왜 두개나 있는지 궁금해서 구글에 서칭해본 결고 다음 블로그에서 잘 설명해주어서 도움이 되었습니다. https://cvml.tistory.com/10 당연 영어 사이트가 저를 맞이할줄 알았는데 한글로 잘 정리해줘서 고마웠습니다.(감사합니다~~) ##torch nn import torch import torch.nn as nn loss = nn.CrossEntropyLoss() input = torch.ra..

AI 2021.11.08

5x5 Conv 를 3x3 Conv2개로 대체 효율

안녕하세요 ~ VGG에서 사용한 5x5 Conv를 3x3Conv 2개로 대체했을 때 왜 파라미터가 수가 적어진다고 하는지 알아보겠습니다. 우선 가정을 해보십다~ output Feature map size: HXW, input Channel, output Channel = 1 라고 생각하면 쉬울거 같아요. 파라미터 및 곱셈 연산량 비교 5x5 Conv 3x3 Conv + 3x3 Conv Params 25 18 Multiplication 25HW 18(HW + H + W +2) 계산을 해보면 다음과 같은 결과를 얻을 수 있습니다. 따라서 항상 5x5 Conv가 3x3 Conv + 3x3 Conv보다 파라미터수는 적음을 확인 할 수 있지만, 연산량에 있어서는 항상 3x3Conv + 3x3Conv가 더 좋다고 ..

AI 2021.11.08

DataLoader worker is killed by signal: Killed 에러

안녕하세요 학습 도중에 갑자기 DataLoader workter (pid) is killed by signal: Killed. -> DataLoader workter (pid) exited unexpectedly 라는 에러문구가 발생했습니다. (아래 그림 참조) 이런 문제가 왜 생기는지 검색해본 결과 메모리 부족이라는 의견이 많았습니다. -> 보통 블로그에서는 dataloader에서 num_workers 부분을 0으로 수정해서 사용하라는 대답이 많았습니다. 저의 경우 해당 방법으로는 해결이 되지 않았고 num_workers를 0으로 세팅하면 학습속도가 엄청 느려지기만 했습니다,, 전에 사용하던 COCO dataset이나 PASCAL VOCdataset에서는 정상적으로 동작하였던 코드였기에 바뀐거라고는 새..

python 2021.11.04
반응형