
파이토치(PyTorch) 이해하기 - 자동 미분(Autograd)
2022. 12. 2. 21:44
인공지능/머신러닝-딥러닝
텐서플로우에서 파이토치로 환승(!)하기 위해 기본적인 내용부터 공부를 하고 있다. 아래의 이전 글들을 참고할 수 있다. 텐서플로우(TensorFlow)에서 파이토치(PyTorch)로 환승하기 파이토치(PyTorch) 이해하기 with MNIST 이번 글에서는 파이토치의 autograd, 즉 자동 미분에 대해서 알아보려고 한다. 기본적으로 파이토치에서 제공하는 이 도큐먼트를 기반으로 한다. 자동 미분 먼저 개념적으로 살펴보자. 연산이 수행되면서 데이터가 발생한다. 이러한 모든 연산을 저장하는 그래프가 있고, autograd가 이 그래프를 담당한다. 이때 그래프는 유향 비순환 그래프(일명 DAG) 형태를 띠며, 잎(leaves)은 입력텐서 그리고 뿌리(roots)는 출력텐서다. 그래프의 뿌리부터 시작해 잎을..

파이토치(PyTorch) 이해하기 with MNIST
2022. 11. 24. 18:51
인공지능/머신러닝-딥러닝
지난 글에서 텐서플로우와 파이토치의 차이를 살펴보고 파이토치의 특징과 장단점을 간단하게 알아봤다. 이번 포스팅에서는 파이토치의 MNIST 예제를 통해 파이토치의 작동 방식을 보다 자세히 공부하려고 한다. 코드는 지난 글에서 그대로 가져왔다. 라이브러리 및 config import torch import torchvision import torch.nn as nn import torch.nn.functional as F from torch.utils.data import DataLoader import numpy as np import matplotlib.pyplot as plt - torchvision은 이미지/영상 처리를 위한 파이토치의 라이브러리다. - torch.nn 이 무엇인지에 대해 파이토치에서..

텐서플로우(TensorFlow)에서 파이토치(PyTorch)로 환승하기
2022. 11. 24. 15:51
인공지능/머신러닝-딥러닝
*해당 포스팅은 이 원문을 번역, 정리(요약)한 것입니다. 텐서플로우가 파이토치보다 1년 먼저 나왔지만, 최근 많은 개발자들이 텐서플로우에서 파이토치로 넘어가고 있는 실정이다. 이번 아티클에서는 텐서플로우에서 파이토치로 넘어가는 방법에 대해 이야기하려고 한다. 먼저 각 딥러닝 프레임워크를 사용하는 이유에 대해 살펴본 후, 간단한 예제를 통해 파이토치와 가까워지는 시간을 가져보려 한다. 프레임워크 개요 텐서플로우 2015년 구글에서 발표한 딥러닝 프레임워크. 텐서플로우 2.0로 업데이트되면서 케라스(keras)와 통합되었다. 파이토치 2016년 페이스북에서 발표한 딥러닝 프레임워크. 파이썬 언어와 자연스럽게 어우러진다는 장점이 있다. 파이토치를 텐서 단위의 딥러닝 모델을 GPU 위에서 계산할 수 있는 플랫..

ASAM (pending)
2022. 8. 10. 16:10
인공지능/머신러닝-딥러닝
rosinality StyleGAN2-pytorch 기반 few-shot GAN ada 에 SAM optimizer 를 적용해보는 실험 train_sam.py 파일 복제 sam.py 생성 (https://github.com/davda54/sam ) train_sam.py에서 optimizer 관련 수정 + self.param_groups(파라미터 그룹)에서 key로 값을 가져오지 못하는 문제 발생하여 찍어봤더니 dict이 아니라 한 개 요소가 든 list. __init__ 함수에 추가해줌: self.param_groups = self.param_groups[0] 그러나 … 사전학습 시에 사용된 optimizer 랑 SAM optimizer의 파라미터 형식(?)이 일치하지 않아 문제 발생 + 적대 모델에 ..
tensorflow - 함수들
2022. 8. 10. 16:07
인공지능/머신러닝-딥러닝
*2.0에서 달라지는 부분이 매우 많으므로 다시 한 번 훑어보면서 쓰는 건지 안 쓰는 건지 확인해야 함!! tf.floor(x) x의 요소별로 그 요소보다 크지 않은 정수 반환 @tf.function 함수를 호출가능한 tensorflow graph 객체로 컴파일하는 데코레이터 tf.GradientTape tf.name_scope 편의함수 정의할 때 사용하는 것을 봤다. 텐서, 변수, 플레이스홀터 등 이러한 변수를 관리하기 위한 간단한 범위 지정 메커니즘을 제공 텐서보드에서 시각화할 때 유용, 자동으로 그래프 원소들이 그룹화됨 tf.device with tf.device('/gpu:0'): ... with문으로 작성하여 수동으로 디바이스 배치하기 → 해당 컨텍스트 내 모든 작업이 동일한 장치로 할당된다. ..

Tensorflow
2022. 8. 10. 16:03
인공지능/머신러닝-딥러닝
what is tensor? 어떻게 바라보아도 그 본질이 변하지 않는 것 (어떤 좌표계로 보더라도 변하지 않는 것) https://www.tensorflow.org/guide/tensor?hl=ko “텐서는 일관된 유형(dtype이라고 불림)을 가진 다차원 배열입니다.” Rank : tensor의 차원 단위 Tensorflow 구글에서 개발한 파이썬 기반 머신러닝 프레임워크 텐서(tensor)를 기본 자료구조로 하여 그것의 흐름으로써 수치연산해주는 라이브러리 → 데이터 플로우 그래프 데이터 플로우 그래프(Data Flow Graph) 노드 : 덧셈, 곱셈 등 텐서를 처리하는 연산 엣지 : 방향에 따른 텐서의 흐름(화살표) a = tf.constant(5, name='a') b = tf.constant(3..

01. numpy 기초
2021. 5. 2. 21:46
인공지능/머신러닝-딥러닝
머신러닝의 기초, numpy 1. Numpy란? - Numerical Python. 행렬 연산이나 다차원 배열(array) 연산을 편리하게 처리할 수 있게 하는 라이브러리입니다. - 파이썬의 기본 list보다 빠르고, 적은 양의 메모리로 연산합니다. - 차원이 다른 행렬끼리 계산할 수 있는 '브로드캐스트'를 지원합니다. 넘파이 치트시트 1-1. np.array 연산 1) 형태 확인하기 matrix1 = np.array([[1, 2], [3, 4]]) matrix2 = np.array([[5, 6], [7, 8]]) print(matrix1.shape) print(matrix2.shape) Out: (2, 2) 두 배열 모두 (2, 2) 형태 입니다. 2) 연산하기 - 배열끼리 연산 matrix1 + ma..