반응형

2021/11 14

[git] github 비밀번호 없이 clone, pull, push 하기(ssh key 설정 방법)

안녕하세요 git에서 ssh key를 설정하는 방법을 소개드릴려고 합니다. 환경은 리눅스에서 진행을 했습니다. 1. SSH Key 파일 확인 - 일반적으로 SSH key는 ~/.ssh 경로에 존재합니다. 우선 기존에 생성해놓은 키가 있는지 확인을 해야합니다. $ cd ~/.ssh $ ll 생성해 놓은 키가 있다면 id_rsa, id_rsa.pub 등의 파일이 있을겁니다. (현재 글은 없다고 가정하고 진행하겠습니다.) 2. SSH Key 생성 ssh-keygen이라는 프로그램을 이용하여 생성 가능합니다. ssh-keygen -t rsa -b 4096 -C "Email@example.com" 다음 창이 뜨면 따로 절대경로를 지정하지 않을거면 엔터를 치시면 됩니다. 사용자 키의 암호 설정을 할려면 해당 창에서..

git 2021.11.16

리눅스 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
반응형