인공지능 196

리눅스(우분투) 기본 명령어 모음

a alias 명령어 간소화하기 apropos 관련된 명령어 찾기 arch 컴퓨터 종류 알기 arp 같은 서브넷의 IP 보여주기 at 작업 시간 정하기 atd 계획성 있는 작업 실행하기 awk 특정 패턴 문자 처리하기 a2p 펄 파일로 바꾸기 b badblocks 배드 블럭 검사하기 bc 계산기 biff 메일 수신 소리로 확인하기 bg 후면작업; 배경화면 설정 bind 키나 함수 순서 결합하기 break 루프 빠져나가기 c case 조건 처리하기 cat 화면상에서 파일 보기 cd 디렉토리 변경하기 cfdisk 디스크 설정하기 chattr 파일 속성 변경하기 chfn 사용자 정보 변경하기 chgrp 파일, 디렉토리가 속했던 그룹 바꾸기 chmod 파일 권한 바꾸기 chown 파일 주인 바꾸기 chsh 지정..

인공지능/기타 2020.07.27

파이토치 - 전이 학습

1. 데이터 준비 1) DataLoader 작성 # 구글 드라이브와 구글 코랩을 연동 from google.colab import drive drive.mount('/content/gdrive') # 라이브러리 불러오기 import torch from torch import nn, optim from torch.utils.data import (Dataset, DataLoader, TensorDataset) import tqdm # DataLoader 작성 from torchvision.datasets import ImageFolder from torchvision import transforms # ImageFolder 함수를 사용해서 Dataset 작성 train_imgs = ImageFolder("..

파이토치 - CNN을 사용한 이미지 분류 (Fashion-MNIST)

1. Fashion-MNIST 10가지 분류의 옷 및 액세서리(신발, 구두 등)를 이미지 데이터 28 X 28 픽셀 크기의 흑백 이미지 1) Fashion-MNIST 데이터로부터 DataLoader 작성 # 라이브러리 불러오기 import torch from torch import nn, optim from torch.utils.data import (Dataset, DataLoader, TensorDataset) import tqdm from torchvision.datasets import FashionMNIST from torchvision import transforms # 구글 드라이브와 구글 코랩을 연동 from google.colab import drive drive.mount('/conte..

파이토치 - 신경망의 모듈화

1) 활성화 함수 ReLU와 Dropout을 내장하는 커스텀 선형 계층을 만들고, 그것을 이용해서 MLP 작성 # 모듈 만들기 class CustomLinear(nn.Module): def __init__(self, in_features, out_features, bias=True, p=0.5): super().__init__() self.linear = nn.Linear(in_features, out_features, bias) self.relu = nn.ReLU() self.drop = nn.Dropout(p) def forward(self, x): x = self.linear(x) x = self.relu(x) x = self.drop(x) return x # 모듈로 네트워크 구성 mlp = mm...

파이토치 - Dropout과 Batch Normalization

1. Dropout을 사용한 정규화 1) 신경망 구성 # 라이브러리 불러오기 import torch from torch import nn, optim from torch.utils.data import TensorDataset, DataLoader from sklearn.datasets import load_digits digits = load_digits() # 데이터를 훈련용과 검증용으로 분할 from sklearn.model_selection import train_test_split # 전체의 30%는 검증용 X = digits.data Y = digits.target X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3)..

파이토치 - Dataset과 DataLoader

파이토치에는 Dataset과 DataLoader라는 기능이 있어서 미니 배치 학습이나 데이터 셔플, 병렬 처리 까지 간단히 수행할 수 있다. TensorDataset은 Dataset을 상속한 클래스로 학습 데이터 X와 레이블 Y를 묶어 놓는 컨테이너이다. TensorDataset을 DataLoader에 전달하면 for 루프에서 데이터의 일부분만 간단히 추출할 수 있게 된다. TensorDataset에는 텐서만 전달할 수 있으며, Variable은 전달할 수 없으니 주의 Dataset은 직접 작성할 수도 있어서 대량의 이미지 파일을 한 번에 메모리에 저장하지 않고 필요할 때마다 읽어서 학습하는 등 다양하게 활용할 수 있다. TensorDataset을 DataLoader에 전달해서 데이터의 일부만 간단히 추..

파이토치 - MLP 구축과 학습

1) 손글씨 문자를 판별하는 MLP 작성 # 라이브러리 불러오기 import torch from torch import nn # 네트워크 구성 net = nn.Sequential( nn.Linear(64, 32), nn.ReLU(), nn.Linear(32, 16), nn.ReLU(), nn.Linear(16, 10) ) 2) 손글씨 문자 데이터의 학습 코드의 나머지 부분 # 라이브러리 및 데이터 불러오기 import torch from torch import nn, optim from sklearn.datasets import load_digits digits = load_digits() # 독립변수, 종속변수 분리 X = digits.data Y = digits.target # Numpy의 ndarr..

파이토치 - 로지스틱 회귀

1. 파이토치를 사용한 로지스틱 회귀분석 1) iris 데이터 준비 # 라이브러리와 iris 데이터 불러오기 import torch from torch import nn, optim from sklearn.datasets import load_iris iris = load_iris() # iris는 (0,1,2)의 세 가지 종류를 분류하는 문제이므로 (0,1)의 두 개의 데이터만 사용한다. # 원래는 학습용과 테스트용으로 나누어야 하지만 여기선 생략한다. X = iris.data[:100] y = iris.target[:100] # Numpy의 ndarray를 PyTorch의 Tensor로 변환 X = torch.tensor(X, dtype=torch.float32) y = torch.tensor(y, ..

파이토치 - 선형 회귀 모델

1. 파이토치로 선형 회귀 모델 만들기 (직접 만들기) y = 1 + 2x1 + 3x2 1) 테스트 데이터 생성 및 파라미터 학습을 위한 변수 정의 # 라이브러리 불러오기 import torch # 참(True)의 계수 w_true = torch.Tensor([1, 2, 3]) w_true # X 데이터 준비. 절편을 회귀 계수에 포함시키기 위해 X의 최초 차원에 1을 추가해 둔다. X = torch.cat([torch.ones(100, 1), torch.randn(100, 2)], 1) X # 참의 계수와 각 X의 내적을 행렬과 벡터의 곱으로 모아서 계산 y = torch.mv(X, w_true) + torch.randn(100) * 0.5 y # 기울기 하강으로 최적화하기 위해 파라미터 Tensor를..

파이토치 - 텐서 / 자동 미분

1. 텐서 생성과 변환 1) 텐서 생성 # 라이브러리 불러오기 import numpy as np import torch # 중첩 list를 지정 t = torch.tensor([[1,2],[3,4.]]) t # device를 지정하면 GPU에 텐서를 만들 수 있다. t = torch.tensor([[1,2],[3,4.]],device="cuda:0") t # dtype을 사용해 데이터형을 지정하여 텐서를 만들 수 있다. t = torch.tensor([[1,2],[3,4.]], dtype=torch.float64) t # 0부터 9까지의 수치로 초기화된 1차원 텐서 t = torch.arange(0, 10) t # 모든 값이 0인 100*10의 텐서를 작성해서 to 메서드로 GPU에 전송 t = torc..

반응형