본문 바로가기
728x90
반응형

AI18

Autograd Autograd는 파이토치를 이용해 Back Propagation을 할 수 있도록 도와주는 방식이다. 코드로 이해해보자. import torch DEVICE = torch.device('cuda' if torch.cuda.is_available() else 'cpu') # parameter 설정 BATCH_SIZE = 64 INPUT_SIZE = 1000 HIDDEN_SIZE = 100 OUTPUT_SIZE = 10 우선 이와 같이 파라미터를 설정한다. BATCH_SIZE는 파라미터를 업데이트 할 때, 계산되는 데이터의 개수이다. BATCH_SIZE 수 많큼 계산하여 loss를 구한다. INPUT_SIZE는 입력층의 노드 수이다. 여기서는 1000인데, 따라서 input의 모양은 (64, 1000)이 된.. 2024. 3. 4.
PSNR과 SSIM 설명 이미지 관련 분야에 자주 등장하지만, super resolution을 공부하면서 PSNR와 SSIM을 접하게 되었다. PSNR(Peak Signal to Noise Ratio)와 SSIM(Structure Similarity Index Map)은 super resolution에서 SOTA(State of the art)를 평가하기 위해 사용하는데, 쉽게 생각하면 이미지가 얼마나 적게 손실되었는가를 나타낸다. 즉 이미지의 품질을 나타내는 지표라고 볼 수 있다. PSNR PSNR을 화질의 손실량을 평가하기 위해 사용하며, 아래와 같이 계산할 수 있다. $PSNR = 10\;log_{10}(\cfrac{MAX_{i}^{2}}{MSE})$ $MSE = \cfrac{\sum_{M,N}[I_{1}(m, n)-I_{.. 2024. 2. 6.
VSCode에서 parser로 input을 받는 파이썬 파일 디버깅 방법 딥러닝 코드를 보다 보면 사용자가 입력을 받아 사용 할 수 있도록 parser를 구성한 코드를 많이 볼 수 있다. 그런데 여기서 아직 어떤 변수를 넣어야할지 모르는데 디버깅을 해서 코드를 확인해보고 싶을 때가 있다. 그래서 parser 입력 없이 디버깅 하는 방법을 알아보자. 아래와 같은 코드가 있다고 할 때, import argparse parser = argparse.ArgumentParser() parser.add_argument("--name", help="Enter your name") parser.add_argument("--age", help="Enter your age") args = parser.parse_args() print("Hello", args.name, ",", args.age.. 2024. 2. 1.
VScode와 git hub 연동 본 내용은 여러 가지 git hub 연동 방법 중에 VScode를 사용하는 경우, 초보자 기준으로 가장 쉬운 연동 방법이라고 생각한다. 아래 내용은 Git hub 및 VScode는 모두 설치 되어 있는 상태에서 진행한다. VSCode의 작업 내용을 GitHub의 Repository로 업로드하기 폴더 생성 원하는 Directory 수준으로 폴더를 구성 (아래에서는 GIT_TEST라는 폴더 생성) 한 후, 파일을 생성해 준다. (git_test.ipynb) GitHub와 연결 폴더와 파일이 생성 된 후 ①, Source Control을 클릭하면 아래와 같은 화면이 나온다. 그 상태에서 보면 좌측 패널에 Initialize Repository와 Publish to GitHub 두 개의 파란 상자가 보이는데 여.. 2024. 1. 2.
Kullback-Leibler divergence (KL Divergence) KL Divergence를 이해하기 위해서는 우선 Entropy와 Cross Entropy에 대해서 이해해야 한다. 1. Entropy Entropy의 정의 열의 이동과 더불어 유효하게 이용할 수 있는 에너지의 감소 정도나 무효 에너지의 증가 정도를 나타내는 양 정보를 내보내는 근원의 불확실도를 나타내는 양 정보량의 기대치를 이르는 말 표준국어대사전에는 위와 같이 entropy를 정의 하였다. 컴퓨터 과학 측면에서는 entropy를 “한 메세지에 들어갈 수 있는 정보량의 비트 수”로 정의 한다. 또한 후술 할 설명에 의하면 entropy는 최적의 정보 전송을 위해 필요한 질문 개수에 대한 기댓값을 의미한다. 조금씩 그 정의에서 차이를 보이긴 하는데, 종합해보면 AI 분야에서의 entropy는 어떤 정보의.. 2023. 11. 23.
AutoEncoder(AE) AutoEncoder(오토 인코더)의 개념 AutoEncoder(AE)는 대표적인 비지도학습(Unsupervised-Learning) 신경망 모델이다. 기본적인 구조는 아래 그림과 같이 인코더(Encoder)와 디코더(Decoder)로 구성되어 있다. Input data에 대해 인코딩(압축)한 후 다시 원래 Input data로 디코딩(복원)하는 개념이다. 아래 그림에서 보면 Input data $x$에 4라는 이미지 값이 들어와 있고, 이 input을 인코더로 압축하여 $z$를 생성한다. 이 때, 이 $z$를 Latent Vector라고 부르며 Latent Vector는 input data를 압축하여 차원을 축소한 것으로 볼 수 있다. Input data의 차원이 잘 축소되었는지 확인하기 위해서 이를 .. 2023. 8. 25.
plot_model 에러 (pydot, graphviz, pydotplus) keras에서 모델을 그림으로 보여주는 plot_model을 사용하는 도중에 에러가 발생하였다. from tensorflow.keras.utils import plot_model 모듈을 불러오고 모델을 만든 후 plot_model을 생성하였는데 아래와 같은 오류가 발생했다. 구글에서 검색했을 때에는 관련 패키지 전부 삭제 (pydot, graphviz, pydotplus) 후 conda 명령어로 설치하면 된다는데 나는 아나콘다를 쓰지 않기 때문에 관계가 없었다. 위 오류에서 알려준 https://graphviz.gitlab.io/download/ 사이트에 가서 직접 다운 받은 후 패키지(graphviz)를 설치하면 해결 가능하다. 다만 어떤 stackoverflow 에서는 윈도우 10 환경에 아나콘다를 .. 2023. 8. 14.
pycocotools 패키지 설치 오류 coco dataset을 확인하기 위해서 pycocotools 라는 패키지가 필요하다. 그런데 해당 패키지를 설치하는 도중 에러가 발생하였다. 해결책1. git을 통해서 다운로드 가장 많이 나오는 해결책이다. 아래 명령어를 통해서 패키지를 받는다. 하지만 나는 여기에서도 오류가 발생하였다. pip3 install "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI" 해결책2. pip install pycocotools-windows 윈도우 환경에서 사용하기 때문에 이런식으로 설치하는 것이다. 하지만 나는 이것도 실패… 해결책3. github 파일 수정 git clone https://github.co.. 2023. 8. 7.
728x90
반응형