딥 러닝에서 스칼라, 벡터, 행렬 및 텐서 간의 차이 및 연결

머리말

딥러닝向量 의 성능 이 기존 머신러닝 알고리즘을 능가할 수 있는 이유는 신경망 矩阵 불가분 의 관계입니다. 벡터는 각 행렬을 통해 선형 변환된 다음 활성화 함수의 비선형 변환을 계층별 계산을 통해 최종적으로 손실 함수를 최소화 하고 모델의 학습을 완료합니다. 따라서 딥 러닝을 잘 배우고 싶다면 여전히 이러한 기본 데이터 구조를 잘 이해하고 있어야 합니다.

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차 텐서 입니다 是三维空间中的一个体. 즉, 벡터는 스칼라로 구성되고 행렬은 벡터로 구성되며 텐서는 행렬로 구성됩니다.

Supongo que te gusta

Origin blog.csdn.net/qq_33867131/article/details/131720106
Recomendado
Clasificación