텐서 Tensor
1.
numpy 배열과 유사한 클래스
2.
Tensor와 numpy 모두 GPU 에서 동작하며, GPU에서 더 나은 성능을 보여준다.
3.
Tensor는 파이썬 배열 배열과 같이 크기를 바꿀수 있다. → 이미지는 3차원 배열 (높이 , 무게, 채널(RGB)로 표현
스칼라 (0차원 텐서)
1개 요소만을 갖는 텐서
벡터 (1차원 텐서)
벡터는 요소의 배열
행렬 (2차원 텐서)
구조화된 데이터는 대부분 테이블 또는 행렬 형태로 표현된다.
torch.Size([506,13]) → 506개 샘플 또는 행으로 구성된 numpy 배열, 각 샘플은 13개의 피처로 표현
= 506 * 13
torch 모듈은 numpy 배열을 torch의 Tensor로 변환하는 from_numpy() 유틸리티 함수를 제공
3차원 텐서
여러 행렬을 결합한 형태
예) torch.Size([224,224,3]) → 이미지의 형상의 높이 : 224 , 이미지의 형상의 폭 : 224 , RGB : 3
텐서 자르기
Tensor 객체의 가장 일반적인 작업으로 Tensor 객체를 잘라 작은 tensor 객체를 만드는 것이다.
sales[:slice_index]
4차원 텐서
대표적인 예시로 이미지 배치 → 한번에 1개 이미지를 처리하는 것보다 여러 이미지를 배치로 묶어 처리
배치 크기는 GPU 메모리 크기에 제약을 받는다.
일반적으로 사용되는 배치 크기는 16,32,64
ex) 64 * 224 * 224 * 3
배치크기 높이 너비 채널 수
5차원 텐서
대표적인 예시로 동영상 데이터
ex) 32 * 30 * 224 * 224 * 3
배치에 포함된 동영상 클립 수 프레임 수 너비 높이 채널
Variable
각 원은 Variable 객체를 나타낸다.
각 변수는 Tensor 객체, Gradients 와 해당 Variable을 생성하는 함수의 참조를 감싸는 형태의 래퍼 클래스
기울기 외에도 Variable 객체는 자신을 생성하는 함수의 참조를 갖는다.
이 참조는 Varialbe 객체가 어떻게 생성되는 지를 알려준다.
loss function
처음 학습 파라미터 w, b는 임의의 값으로 초기화 되기 때문에 모델의 결과인 y_pred와 실제 y값의 차이는 크다.
따라서 실제 값과 예측값과 비교하는 함수가 필요하다.
SSE (Sum of Squared Error)함수 사용
신경망 최적화
이 프로세스는 한 epoch, 전체 데이터셋에 대해 반복된다.
이 반복 처리 별로 최적화가 수행된다.
epoch : 전체 학습 데이터를 모두 옮긴 것. 6 epoch란 전체 데이터를 6번 학습했다는 뜻.
Learning_rate 는 대표적인 하이퍼파라미터로, 학습 파라미터의 값을 조정할 때 사용하는 기울기의 적용 비용