AI Track/AI Basic

[총정리] Pytorch로 AI 모델링을 하는데 필요한 모든 것
1. DatasetDataset은 단순히 csv나 Json을 이용하는 거 아니야? 라고 생각하지만 엄밀히 말하면 파일을 가져와서 아래와 같은 방식으로 변환해 줘야 한다(대부분)DataFrame -> numpy -> Tensor 즉 Tensor 형식으로 Data를 불러와야 하고 방법은 torch.utils.data를 이용하는 것이다 쉽게 아래만 기억하자1. DataFrame 가져오기2., DataFrame 에서 x 와 y 를 나누기3. x, y를 각각 to_numpy() 를 이용해서 numpy로 바꾸기4, numpy를 torch.FloatTensor(numpy).to(device) 를 통해 Tensor로 변환하고 장치에 올리기 Tensor 종류는 이 링크 참고 https://pytorch.org/docs/..

[AI] 2023 AI 트렌드 살펴보기 (CV, NLP)
1. Introduction 2023년 가장 큰 변화는 "AI에 대한 사람들의 관심 증가"라고 주저없이 말할 수 있을 것 같습니다. 실제로 이번년도에 대학교에서 AI 기술들에 대한 (DNN, CNN, Scikit learn, ML, Data Analysis) 질문을 주변에서 정말 많이 듣고 답변을 해줬던 기억이 있습니다. 하지만 "지금 제일 핫한 AI가 뭐야?"에 대한 답변을 하기엔 너무 광범위한 질문이라 생각이 듭니다. AI를 구현하는 방법 중 하나인 Deep Learning을 적용한 분야는 "NLP", "CV", "Recsys" 등 다양한 분야가 있습니다. 이렇게 도메인을 좁혀서 위의 질문을 다시 한다면 좀 더 답변이 쉬워질 것이라 예상됩니다. 오늘 소개할 두 가지 AI 트렌드는 CV, NLP 분야에..

[Pytorch] Pytorch 압축정리
소개 Pytorch vs TensorFlow 딥러닝을 할때 좀 더 편리하게 해주는 일종의 "FrameWork"라 생각하면 된다 지금 선두하고 있는 Framework는 두가지 이다 Pytorch : Facebook에서 만듬 TensorFlow : Google에서 만듬 이 둘의 차이는 다음과 같다 keras 와 TensorFlow는 현재 합쳐져 있다 그래서 TensorFlow 와 Pytorch의 차이를 보면 가장 큰 차이점은 Computational graphs Used에 있는데 결국 학습을 위해서는 미분을 하여서 Backpropagation을 진행해야 하고 이를 위해서는 현재있는 데이터를 그래프로 표현을 해야한다 이때 TensorFlow 는 Static graph로 그래프를 Static하게 그려서 실행시점..

[Pytorch Basic] 모델을 가져와서 Fine Tuning하기
이미 학습이 된 모델을 가져와서 우리의 데이터를 학습하는 것 => colab 같은거 8시간 되면 꺼지고 막 이런거 때문에 학습 결과를 저장해야 함 model.save() 학습의 결과를 저장하기 위한 함수 1. 모델의 형태(architecture) 저장 2. 변수(parameter)를 저장 print("Model's state_dict") for param_tensor in model.state_dict(): print(param_tensor, "\t", model.state_dict()[param_tensor].size()) torch.save(model.state_dict(), os.path.join(MODEL_PATH,"model.pt")) new_model = TheModelClass() new_m..

[Pytorch Basic] Pytorch DataSets and DataLoaders
1. 데이터를 모은다 2. Dataset class를 이용하여서 __init__() : 시작할 때의 초기 조건 (이미지를 Tensor로 변환시키기 등의 모든 처리를 해줄 필요는 없다) __len__() : 데이터의 길이를 반환 __getitem__(): Map-Style : 하나의 데이터를 불러올 때 어떻게 반환할지 (주로 index를 가지고 논다) 3. 이 Dataset class 를 어떻게 바꿀지를 transforms class 로 지정을 해준다 ex) 데이터를 전처리 하는 부분(이미지 중앙정렬), 데이터를 tensor로 바꾸는 부분 등등 4. Model로 데이터를 보내기전에 DataLoader를 통해 형식에 맞춰 데이터를 묶어서 Model한테 넘긴다 class CustomDataset(Dataset..

[Basic Pytorch]AutoGrad & Optimizer
딥러닝 모델의 layer는 일종의 레고 블록이다 -딥러닝을 구성하는 layer의 base class -input, output, Forward, backward를 정의해야한다 - 변수에 AutoGradient를 사용하고 싶으면 required_grad = True를 지정해줘야 한다 Weight 즉, Parameter를 구성할 때 input과 Output의 개수를 고려하는 것이 중요하다 bias는 Output 개수만 고려하면 된다 ex ) 가장 기본 적인 Wx + b = y 를 생각 할때 input = (3,7) 이고 (data 개수, feature의 개수) output = (3,5) 일때 weight 는 (5,7) 이고 bias는 (5,) 이다 class MyLiner(nn.Module): def __i..

[Basic Pytorch]Pytorch 프로젝트 구조
초기 연습을 하거나 학습을 할때는 Jupyter notebook이 좋다 -> 배포 나 공유 단계에서는 한계가 있음 추천하는 template https://github.com/victoresque/pytorch-template 깃허브 주소에서 https://github.com => github로 바꾸고 https://colab.research.google.com/ 뒤에 붙여 주면 된다 from google.colab import drive drive.mount('/content/drive') +) 앞에 !를 붙여 주면 magic commend 즉 cmd나 cmder에서 실행 하는 것 처럼 사용이 가능하다 ex) !pip3 install torch #torch다운로드 %cd /content/pytorch-t..

[Basic Pytorch]Pytorch의 기본
Pytorch = numpy + AutoGrad python => list numpy => ndarray pytorch => tensor import numpy as np import torch #ndarray to tensor n_array = np.arange(10).reshape(2,5) t_array = torch.FloatTensor(n_array) print(t_array) #tensor([[0., 1., 2., 3., 4.], # [5., 6., 7., 8., 9.]]) print(t_array.ndim) #차원 print(t_array.size()) #모양 출력 #list to tensor data = [[1,2,3,4,5],[6,7,8,9,10]] x_data = torch.tensor(..