no image
[머신러닝과 딥러닝] 16. 데이터 로더(손글씨 인식 모델)
1. 데이터 로더(Data Loader) 데이터의 양이 많을 때 배치 단위로 학습하는 방법 HTML 삽입 미리보기할 수 없는 소스 손글씨 인식 모델 만들기 실습 1. 필요모듈 임포트 import torch import torch.nn as nn import torch.optim as optim import matplotlib.pyplot as plt from sklearn.datasets import load_digits from sklearn.model_selection import train_test_split 2. CPU -> GPU 변경 device = 'cuda' if torch.cuda.is_available() else 'cpu' print(device) # 결과값 => cuda 3. 데이터..
2024.01.10
no image
[머신러닝과 딥러닝] 15. 파이토치로 구현한 논리회귀_2(경사하강법 + 와인 품종 예측)
경사 하강법의 종류 1-1. 배치 경사 하강법 가장 기본적인 경사 하강법(Vanlilla Gradient Descent) 데이터셋 전체를 고려하여 손실함수를 계산함 한 번의 Epoch에 모든 파라미터 업데이트를 단 한번만 수행 Batch의 개수와 Iteration은 1이고, Batch Size는 전체 데이터의 갯수 파라미터 업데이트할 때 한 번에 전체 데이터셋을 고려하기 때문에 모델 학습 시 많은 시간과 메모리가 필요하다는 단점이 있음 1-2. 확률적 경사 하강법 확률적 경사 하강법(Stochastic Gradient Descent)은 배치 경사 하강법이 모델 학습시 많은 시간과 메모리가 필요하다는 단점을 개선하기 위해 제안된 기법을 뜻함. Batch Size를 1로 설정하여 파라미터를 업데이트 하기 때..
2024.01.10
no image
[머신러닝과 딥러닝] 15. 파이토치로 구현한 논리회귀_1
1. 단항 논리회귀(Logistic Regrssion)실습 분류를 할 때 주로 사용하며, 선형 회귀 공식으로부터 나왔기 때문에 논리회귀라는 이름이 붙여짐 직선 하나(선형 회귀)를 사용해서 분류를 예측한다면 제대로 에측하지 못할 경우가 많음 HTML 삽입 미리보기할 수 없는 소스 Sogmoid 함수(Logistic 함수)를 사용하여 정확도를 높일 수 있음 HTML 삽입 미리보기할 수 없는 소스 2. 시그모이드(Sigmoid)함수 예측값을 0에서 1사이의 값이 되도록 만듦 0에서 1사이의 연속된 값을 출력으로 하기 때문에 보통 0.5를 기준으로 구분 실습 진행 1. 필요 모듈 임포트 import torch import torch.nn as nn import torch.optim as optim import ..
2024.01.10
no image
[머신러닝과 딥러닝] 14. 파이토치로 구현한 선형회귀_2(지면온도 예측)
1. 파일 불러오기 import pandas as pd temp_df = pd.read_csv('/content/drive/MyDrive/KDT v2/머신러닝과 딥러닝/ data/temps.csv', encoding='euc-kr') temp_df 2. null값 확인 df.isna().sum() # 결과값 => # 지점 0 # 지점명 0 # 일시 0 # 기온(°C) 3 # 지면온도(°C) 0 3. null값 제거 df.dropna(inplace=True) 4. x_data에 기온데이터 저장, y_data에 지면온도 데이터 저장 x_data = df[['기온(°C)']] y_data = df[['지면온도(°C)']] x_data = torch.FloatTensor(x_data.val..
2024.01.09
no image
[머신러닝과 딥러닝] 14. 파이토치로 구현한 선형회귀_1
1. 단항 선형 회귀 실습 한개의 입력이 들어가서 한 개의 출력이 나오는 구조 # 필요모듈 임포트 import torch import torch.nn as nn # 뉴럴 네트워크 import torch.optim as optim import matplotlib.pyplot as plt # 토치에 상수를 저장할 수 있는데, 랜덤값의 고정을 시키기 위해 2024라는 seed를 설정함. torch.manual_seed(2024) # 결과값 => x_train = torch.FloatTensor([[1], [2], [3]]) y_train = torch.FloatTensor([[2], [4], [6]]) print(x_train, x_train.shape) print(y_train, y_train.shape) ..
2024.01.09
[GoogleColab] 코렙에서 GPU 사용방법
코렙의 GPU 사용 1. 코렙에서 device 변경하는 방법 상단 메뉴 -> 런타임 -> 런타임 유형 변경 -> 하드웨어 가속기를 T4 GPU or TPU로 변경 -> 저장 -> 세션 다시 시작 및 모두 실행 tensor = torch.rand(3, 4) print(f'shape: {tensor.shape}') print(f'dtype: {tensor.dtype}') print(f'device: {tensor.device}') # 결과값 => # shape: torch.Size([3, 4]) # dtype: torch.float32 # device: cpu # is_available() : gpu 사용할 수 있는지 여부 tensor = tensor.reshape(4, 3) tensor = tensor.i..
2024.01.09