간편한 딥러닝 API를 제공하며 머신러닝 알고리즘을 구현하고 실행하기 위한 확장성이 뛰어난 멀티플랫폼 프로그래밍 인터페이스 이다.(사용자 친화성을 강조하고 복잡한 작업도 손쉽게 처리가능)
또한 연산을 평가하고, 계산을 실행하고, 구체적인 값을 즉시 반환하는 동적 계산 그래프이다.

파이토치 이전에 구글에서 만든 텐서플로우가 있었으나 지금은 거의 대부분이 파이토치를 사용한다.
(그렇다고 해서 텐서플로우를 몰라도 되느냐? 빠르게 변화하는 AI에서 공부하지 않아도 되는건 없다. 어떤 방식으로 굴러가는지 알아 두면 좋겠지!)
확장성이 뛰어나다(다양한 규모의 프로젝트에서 다양하게 적응할 수 있다.)
멀티플랫폼(windows,macOS,Linux 등 다양한 곳에서 사용 가능하다.)
테슬라 자율주행, 우버, 허깅페이스에 제공되는 AI모델들등등 다양하게 사용된다.

파이토치는 이렇게 3-level로 나눌 수 있다. 각각의 층을 간략히 정리해보자!
** API(Application Programming Interface)
응용프로그램이 서로 상호작용하는데 사용하는 명령어, 함수, 프로토콜의 집합을 의미한다.
파이토치는 텐서 연산을 할 수 있게 해주는 거 같은데 tensor도 간략하게 정리해보자
텐서란 파이토치의 핵심 데이터 구조로서, numpy의 다차원 배열과 유사한 형태로 데이터를 표현
0-d(차원) tensor(scalr, 하나의 숫자)
ex) torch.tensor(10)
1-d(차원) tensor(vector, 순서가 지정된 벡터 구조)
ex) torch.tensor([1,2,3,4,5])
2-d(차원) tensor(matrix, 행과 열로 구성된 행렬 구조)
ex) c=torch.tensor([[77, 114, 140, 191],
[39, 56, 46, 119],
[61, 29, 20, 33]])

이차원 텐서를 예를 들어 그레이 스케일 이미지로 변환할 수 있다.
3-d(차원) tensor
ex) d=torch.tensor([[[255,0,0],
[0,255,0]],
[[0,0,255],
[255,255,0]]])
위에 처럼 해도 되지만 아래와 같이 해도 위와 같은 값을 가질 수 있다.
red_channel = torch.tensor([[255, 0],
[0, 255]])
green_channel = torch.tensor([[0, 255],
[0, 255]])
blue_channel = torch.tensor([[0, 0],
[255, 0]])
d = torch.stack((red_channel, green_channel, blue_channel), dim=2) #dimesion 2방향으로 3개의 채널을 합치겠다는 의미
3차원 텐서는 컬러이미지로 표현할 수 있다.

** 3차원 이상은 배운것처럼 계속 새로운 축을 배열하여 확장한다고 보면 된다.