728x90
반응형
SMALL

4. GPU 사용하기

  • 코랩에서 device 변경하는 방법
    • 상단 메뉴 -> 런타임 -> 런타임 유형 변경 -> 하드웨어 가속기를 GPU로 변경 -> 저장 -> 다시시작 및 모두실행

이런식으로 사용후 다시시작을 하면 cuda가 출력된다.

728x90
반응형
LIST

'머신러닝, 딥러닝' 카테고리의 다른 글

tensor의 변환  (0) 2023.07.06
pytorch(scalar, vector, matrix, tensor)  (0) 2023.07.06
Iris DataSet  (0) 2023.06.14
사이킷 런( Scikit-learn )  (1) 2023.06.14
머신러닝  (0) 2023.06.13
728x90
반응형
SMALL

이러한 데이터가 있다.

data = [[1, 2], [3, 4]]

 

- torch의 tensor 메소드를 이용하여 텐서로 변환

x_data = torch.tensor(data)

 

numpy를 불러와서

import numpy as np
np_array = np.array(data)

ndarray로도 변환이 가능하다.

 

다시 ndarray를 텐서로 변환하기

x_np_1 = torch.tensor(np_array)

 

- 텐서의 값 변경하는 방법

x_np_1[0, 0] = 100

0번째 행에서 0번째 값에 접근하기

 

- ndarray와 같은 메모리 주소를 같게 하는 함수

x_np_2 = torch.as_tensor(np_array) # ndarray와 동일한 메모리 주소를 가리키는 뷰를 만드는 함수
x_np_2[0, 0] = 200 # 기존 메모리 주소의 ndarray값을 변경하게 됨

이렇게 생성된 객체는 기존 메모리주소의 값도 변경하게 한다.

 

x_np_3 = torch.from_numpy(np_array)

이 함수는 ndarray와 같은 메모리주소를 가진 텐서로 변환해주는 함수이다.

이렇게 같은 저장공간을 가지게 되는 것을 Memory sharing 이라고 함

 

 

# 파이토치 주요 함수

 

 

728x90
반응형
LIST

'머신러닝, 딥러닝' 카테고리의 다른 글

GPU 사용법  (0) 2023.07.06
pytorch(scalar, vector, matrix, tensor)  (0) 2023.07.06
Iris DataSet  (0) 2023.06.14
사이킷 런( Scikit-learn )  (1) 2023.06.14
머신러닝  (0) 2023.06.13
728x90
반응형
SMALL

1. 파이토치(pytorch)

  • 텐서플로우와 함께 머신러닝, 딥러닝에서 가장 널리 사용되는 프레임워크
  • 초기에는 Torch라는 이름으로 Lua언어 기반으로 만들어 졌으나, 파이썬 기반으로 변경한 것이 Pytorch
  • 뉴욕대학교와 페이스북이 공동 개발하였고, 현재 가장 대중적이고 널리 사용됨

-  모듈 불러오기

import torch
 
# 버전 확인하는 방법
print(torch.__version__)

 

1-1. 스칼라(Scalar)

  • 하나의 상수를 의미

- 스칼라는 0차원 텐서로 볼수 있다. 

var1 = torch.tensor([1])

- var 1의 타입을 확인 해보기

 

- 스칼라의 사칙연산

var1 = torch.tensor([1])

var2 = torch.tensor([6.5])

 

1-2. 벡터(Vector)

  • 상수가 두개 이상 나열되었을 경우

스칼라에서는  [ ] 안에 상수가 하나였지만 벡터부터는 여러개의 상수가 담겨있다.

vector1 = torch.tensor([1, 2, 3])
vector1

 

vector2 = torch.tensor([10, 20, 30])

vector2를 선언해주고

- 사칙연산

 

1-3. 행렬(Matrix)

  • 2개 이상의 벡터 값을 가지고 만들어진 값으로 행과 열의 개념을 가진 숫자의 나열
matrix1 = torch.tensor([[1, 2], [3, 4]])
print(matrix1)

- 2행 2열로 구성되어있는것을 확인할수 있다.

라면, 

스칼라와 벡터와 같이 사칙연산도 가능하다.

1-4. 텐서(Tensor)

  • 다수의 행렬이 모이면 텐서라고 부름
  • 배열이나 행렬과 매우 유사한 특수 자료구조
  • 파이토치는 텐서를 사용하여 모델의 입력과 출력, 모델의 매개변수들을 처리 사용됨

 

텐서도 마찬가지로 사칙연산이 가능하다.

 

728x90
반응형
LIST

'머신러닝, 딥러닝' 카테고리의 다른 글

GPU 사용법  (0) 2023.07.06
tensor의 변환  (0) 2023.07.06
Iris DataSet  (0) 2023.06.14
사이킷 런( Scikit-learn )  (1) 2023.06.14
머신러닝  (0) 2023.06.13
728x90
반응형
SMALL

1. Iris DataSet

* [사이킷런 데이터셋 페이지]
* 데이터셋: 특정한 작업을 위해 데이터를 관련성 있게 모아놓은 것

 

먼저 모듈을 불러온다

 

그후 객체에 담아서 사용

 

아이리스 데이터 셋을 활용한 머신러닝 예제

# 라이브러리 불러오기
from sklearn.datasets import load_iris
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score

# 데이터셋 불러오기
iris = load_iris()

# 독립변수, 종속변수 설정
X = pd.DataFrame(iris.data, columns=iris.feature_names)
y = pd.DataFrame(iris.target, columns=['target'])

# train, test 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=10)

# 모델 학습 및 예측
svc = SVC()
svc.fit(X_train, y_train)
y_pred = svc.predict(X_test)

# 정확도 출력
print('정확도:', accuracy_score(y_test, y_pred))

이 코드를 실행하면 96.67%의 정확도가 출력

 

728x90
반응형
LIST

'머신러닝, 딥러닝' 카테고리의 다른 글

GPU 사용법  (0) 2023.07.06
tensor의 변환  (0) 2023.07.06
pytorch(scalar, vector, matrix, tensor)  (0) 2023.07.06
사이킷 런( Scikit-learn )  (1) 2023.06.14
머신러닝  (0) 2023.06.13
728x90
반응형
SMALL
https://scikit-learn.org
대표적인 파이썬 머신러닝 모듈
다양한 머신러닝 알고리즘 제공
다양한 샘플 데이터를 제공
머신러닝 결과를 검증하는 기능을 제공
BSD 라이센스이기 때문에 무료로 사용 및 배포가 가능

 1. LinearSVC

* 클래스를 구분으로 하는 분류 문제에서 각 클래스를 잘 구분 하는 선을 그려주는 방식을 사용하는 알고리즘
* 지도학습 알고리즘을 사용하는 학습 전용 데이터와 결과 전용 데이터를 함께 가지고 있어야 사용이 가능한 알고리즘

 

learn_data = [[0,0], [1,0], [0,1],[1,1]]
learn_label = [0,0,0,1]

svc = LinearSVC()

svc.fit(learn_data, learn_label)

학습이 완료되면 이런식으로 나온다.
임의의 검증 데이터

test_data = [[0,0], [1,0], [0,1],[1,1]]

test_label = svc.predict(test_data)

test_label

728x90
반응형
LIST

'머신러닝, 딥러닝' 카테고리의 다른 글

GPU 사용법  (0) 2023.07.06
tensor의 변환  (0) 2023.07.06
pytorch(scalar, vector, matrix, tensor)  (0) 2023.07.06
Iris DataSet  (0) 2023.06.14
머신러닝  (0) 2023.06.13
728x90
반응형
SMALL

1. 머신 러닝

인공지능: 인공(Artificial) + 지능(interlligence)

개발자에 의한 인공지능, 데이터에 의한 인공지능
머신러닝: 데이터를 기반으로 학습(learning) 하는 기계

딥러닝: 깊은(deep) 신경망 구조의 머신러닝

 

1-1. 배경

  • 과거 컴퓨터로 데이터를 읽어들이고, 데이터 안에서 특징을 학습하여 패턴을 찾아내는 작업 -> 패턴인식
  • 데이터를 대량으로 수집 처리할 수 있는 환경이 갖춰짐으로 할수 있는 일들이 많아짐
  • 머신러닝은 데이터로 부터 특징이나 패턴을 찾아내는 것이기 때문에 데이터가 가장 중요함

 

1-2. 정의

  • 인공지능의 한 분야로 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야
  • "무엇(x)으로 무엇(y)를 예측하고 싶다"의 f(함수)를 찾아내는 것
  • y: 출력변수(종속변수), ex) 키 나이 를 통해
  • x: 입력변수(독립변수), ex) 강아지, 개 를 구분하는
  • f(모형): (머신러닝 알고리즘)

 

2. 머신러닝으로 할 수 있는 것

 

2-1. 회귀(Regression)

  • 시계열(시간적인 변화를 연속적으로 관측한 데이터) 데이터 같은 연속된 데이터를 취급할 때 사용하는 기법 예) 과거 주식 추세를 학습해서 내일의 주가를 예측하는 시스템을 개발
 

2-2. 분류(Classification)

  • 주어진 데이터를 클래스 별로 구별해 내는 과정으로 데이터와 데이터의 레이블값을 학습시키고 어느 범주에 속한 데이터인지 판단하고 예측 ex) 스팸메일인지 아닌지 구별해주는 시스템을 개발

2-3. 클러스터링(Clustering)

  • 분류와 비슷하지만 데이터에 레이블(정답 데이터 / 종속변수)이 없음
  • 유사한 속성들을 갖는 데이터를 일정한 수의 군집으로 그룹핑하는 비지도 학습 ex) sns 데이터를 통해 소셜 및 사회 이슈를 파악

 

 

 

3. 학습

3-1. 지도 학습

  • 문제와 정답을 모두 학습시켜 예측 또는 분류하는 문제
  • y=f(x)에 대하여 입력 변수(x)와 출력 변수(y)의 관계에 대하여 모델링 하는 것
  • y에 대하여 예측 또는 분류하는 문제
 

3-2. 비지도 학습

  • 출력변수(y)가 존재하지 않고, 입력변수(x)간의 관계에 대해 모델링 하는 것
  • 군집분석: 유사한 데이터끼리 그룹화
  • PCA: 독립변수들의 자원을 축소화

3-3. 강화 학습
*  수 많은 시뮬레이션을 통해 현재의 선택이 미래에 보상이 최대가 되도록 학습

 

728x90
반응형
LIST

'머신러닝, 딥러닝' 카테고리의 다른 글

GPU 사용법  (0) 2023.07.06
tensor의 변환  (0) 2023.07.06
pytorch(scalar, vector, matrix, tensor)  (0) 2023.07.06
Iris DataSet  (0) 2023.06.14
사이킷 런( Scikit-learn )  (1) 2023.06.14

+ Recent posts