[Pytorch] 기본 문법과 regression에 대해.araboza

kkkey·2022년 10월 11일
0

pytorch 사용

import torch

tensor만들기

torch.tensor([][],dtype = torch.Float) #float형의 텐서 제작

unsqueeze,squeeze,view =>텐서 모양 바꾸기

torch.unsqueeze(x,i) #tensor x 에 i 번쨰 차원 추가
# 만약 [1] 에다가 unsqueeze(x,1) 하면 [[1]]
torch.squeeze(x) # tensor에서 크기가 1인 차원 제거
torch.view(shape) # 만약 길이 9개짜리 텐서에
#shape = 9 => [1,2,3,4,5,6,7,8,9]
#shape = 1,3,3 => [[[1,2,3],[4,5,6],[7,8,9]]]

행렬연산

# 행렬의 곱
torch.mm(x,y) # matrix multiplication

기울기 연산, tensor에 requires_grad = True를 주고나서 역전파를 해준다

# a를 b로 미분한 값은?
a.backward()
b.grad

사이즈 벡터를 만들어주자

x = torch.zeros(2,1) => [[-,-]]
y = torch.zeros(3,2) => [[-,-,-],[-,-,-]]

sigmoid란?
일반 회귀에서는 가설을 X'W + b 형태로 주었다면
sigmoid는 1/1+(e^-(W'X + b))형태로 나타낼 수 있다.

hypo = torch.sigmoid(W'T + b)

lineal regression에서의 cost는
결과값이 1이면 -log(h) 0 이면 -log(1-h)

softmax란? onehot 값으로 들어오는 결과값으로 가설함수를 만들때 정규화? 를 하는식
w가 3개 a,b,c를 onehot으로 받는다고 할때
가설은 e^a/(e^a+e^b+e^c)

hypo = torch.softmax(X'W + b)
profile
주니어 백엔드 개발자입니당

0개의 댓글