기사 디렉토리
머리말
딥러닝
向量
의 성능 이 기존 머신러닝 알고리즘을 능가할 수 있는 이유는 신경망 과矩阵
불가분 의 관계입니다. 벡터는 각 행렬을 통해 선형 변환된 다음 활성화 함수의 비선형 변환을 계층별 계산을 통해 최종적으로 손실 함수를 최소화 하고 모델의 학습을 완료합니다. 따라서 딥 러닝을 잘 배우고 싶다면 여전히 이러한 기본 데이터 구조를 잘 이해하고 있어야 합니다.
1. 텐서
선형대수를 공부한 아이들은 행렬이 행렬의 저장과 행렬 간의 연산을 용이하게 하기 위해 행렬의 덧셈과 뺄셈, 행렬의 전치, 행렬의 점 곱셈, 행렬의 교차 곱셈과 같은 다양한 연산을 수행할 수 있다는 것을 알고 있습니다. 위대한 신들이 PyTorch 라이브러리를 추상화했습니다.PyTorch 라이브러리에는 torch.Tensor라는 클래스가 있습니다.이 클래스는 행렬 변수를 저장하고 이 행렬에서 다양한 작업을 수행하기 위한 일련의 메서드를 가지고 있습니다.위의 행렬 작업을 전달할 수 있습니다.해당 메서드 torch.Tensor 클래스 구현. Tensor라는 단어는 일반적으로 "텐서"로 번역될 수 있지만 위에서 수행하는 모든 연산은 행렬 연산입니다. 텐서는 무엇을 의미합니까? 보통 우리는 행렬에 대한 연산을 해야 할 뿐만 아니라 0차원(단순수), 1차원 행렬( 배열 ), 2차원 행렬( 행렬 ), 3차원( 3차원 행렬 ), 그리고 다차원 행렬, Pytorch 이러한 다양한 차원을 통합하기 위해 텐서 라고 합니다 . 이처럼 배열 은 1차 텐서 , 2차원 행렬은 2 차 텐서, 3차 텐서 , 4차 텐서 , 5차 텐서 , 6차 텐서 가 있다. . Pytorch는 Tensor
전치, 인덱싱, 슬라이싱, 수학 연산, 선형 대수, 난수 등을 포함하여 100개 이상의 작업을 지원합니다. 간단히 말해, pytorch에는 생각할 수 있는 모든 작업에 해당하는 메서드가 있습니다.
다음 그림은 3차원 행렬입니다.
참고 :
- 차원은 일반적으로 벡터를 설명하는 데 사용됩니다(예: N차원 벡터, 128차원 고유값). 여기서 차원은 텐서의 축 정의 와 다릅니다 . 이 N 차원 벡터는 여전히 벡터 (즉, 1차 텐서)를 설명하며, 여기서 N은 배열의 요소 수를 설명합니다.
- 2차 텐서 ( 즉 , 행렬)는 2차원 평면처럼 보이기 때문에 3차 텐서는 3차원 공간처럼 보이고 N차 텐서는 N차원 배열 로 나타낼 수 있으며, 차원은 때때로 텐서 의 순서를 설명하는 데 사용됩니다 . 혼동을 피하기 위해 차원을 사용하여 텐서의 순위를 설명 하지 마십시오 . 순위의 수는 이 텐서의 축 수를 나타냅니다.
2. 스칼라 : 0차 텐서, 0축, 단일 숫자(정수 또는 실수);
Python에서 스칼라를 정의합니다.
x = 1
3. 벡터 (vector): 차수 1의 텐서, 벡터, 1축, 배열이라고도 함;
Python에서 벡터 정의: ( 벡터는 Python에서 1차원 배열 로 표시됨 )
import numpy as np
#行向量
a = np.array([1,2,3,4])
4. 행렬 : 차수 2의 텐서, 두 축은 일반적으로 행과 열이라고 합니다.
파이썬에서 행렬 정의: ( 행렬은 파이썬에서 2차원 )
import numpy as np
#矩阵
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
Python에서 3차원 행렬 , 차수 3의 텐서를 정의합니다 (3차원 행렬 , Python 에서 3차원 배열로 표시되는 3차원 행렬 )
import numpy as np
#张量
a = np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
numpy.ndarrry 유형의 변수 t의 모양(t.shape)으로 설명합니다.
- (1,): 스칼라, 0차 텐서, 1차원 벡터, 값이 1개만 있음;
- (3,): 벡터, 1차 텐서, 3차원 벡터, 3개 값;
- (5,): 벡터, 1차 텐서, 5차원 벡터, 5개 값;
- (2, 3): 행렬, 2차 텐서, 6개의 값, t[0]은 3차원 벡터입니다.
- (3, 1): 행렬, 2차 텐서, 3개의 값, t[0]은 1차원 벡터입니다.
- (3, 4, 5): 60개의 값을 갖는 3차 텐서, t[0,0]은 5차원 벡터, t[0]은 행렬입니다.
5. 스칼라 벡터 행렬 텐서 간의 연결:
스칼라는
0维空间中的一个点
, 벡터는一维空间中的一条线
, 행렬은二维空间的一个面
, 3차 텐서 입니다是三维空间中的一个体
. 즉, 벡터는 스칼라로 구성되고 행렬은 벡터로 구성되며 텐서는 행렬로 구성됩니다.