텐서(Tensor) 이해(2) : Shape

1. 소개



Tensor를 이해하는 데 필요한 정보를 자신의 메모로 정리합니다.
동시에 Python의 Tensor 표기법도 소개합니다.
* 영어 표현이 직관적이고 이해하기 쉽기 때문에 번역없이 그대로 기입합니다.

이전 기사에 이어 이번에는 Tensor의 Shape에 대해 소개합니다.
텐서(Tensor) 이해(1) : Dimension

2.텐서란?


  • Tensor is a just a container for data.
  • The data are almost numerical data
  • Therefore, Tensor is a container for number.

  • 텐서는 숫자를 포함하는 컨테이너입니다. 간단하네요.

    3.텐서 키워드



    Tensor, Dimension, Axis, Ranks의 의미입니다.
  • Tensor is a container of numbers.
  • Tensor is a generalization of matrices to an arbitrary number of dimensions.
  • In tensor, dimension is often called axis.

  • Number of dimension (=Number of axis) is called ranks.

  • 텐서는 매트릭스의 일반화 된 표현.


    이름
    텐서
    표기


    Scalar
    0 Dimensional Tensor
    Not Available

    벡터
    1 Dimensional Tensor
    (k)

    Matrix
    2 Dimensional Tensor
    (j,k)

    ..
    3 Dimensional tensor
    (i,j,l)




    4.텐서 Shape



    텐서의 Shape는 각 Dimension(=axis)이 몇 개의 요소(Element)로 구성되었는지를 나타내는 정보입니다.
    경험상 2D 텐서(Matrix) 이상은 Shape의 이해가 쉽습니다만, 0D텐서(Scalar), 1D텐서(Vector)의 Shape는, 예를 보고 나서 이해할 필요가 있습니다.

    Python의 shape 명령어로 Tensor의 Shape를 확인할 수 있습니다.

    4.1 Scalar : 0D Tensor


    Scalar has empty shape.
    예를 들어 숫자 12의 예를 들 수 있습니다.
    숫자 12는 숫자가 하나만 있기 때문에 Scalar입니다.
    Scalar는 0D Tensor입니다. 즉 Tensor의 Dimension이 0입니다. Dimension이 없습니다.
    없는 Dimension의 Element 수의 정보가 Shape이므로, Scalar의 Shape는, ( ) 밖에 표기할 수 없습니다.
    이것을 영어에서는 Scalar has empty shape.라고 합니다.
    조금 불합리한 설명입니다만, Vector까지 참아 주세요.

    아래 코드에서 Scalar의 Shape를 출력해 보겠습니다.



    4.2 Vector : 1D Tensor


    1D tensor has a shape with a single element, such as (4, ).
    다음은 Vector의 예입니다.
    \begin{bmatrix}
    12 & 3 & 6 & 14 
    \end{bmatrix}
    

    Vector는 1D 텐서입니다. Dimension이 하나 밖에 없기 때문에, 하나의 숫자로 Shape를 나타냅니다.
    그리고이 벡터의 요소 수는 4입니다.
    따라서이 Vector의 Shape는 (4,)로 표시됩니다. 이것은 핀과 오지 않을 수 있지만 기억할 수밖에 없습니다.

    아래의 코드로 Vector의 Shape를 출력해 보겠습니다.


     

    4.3 Matrix : 2D Tensor


    2D tensor has a shape such as (3,4). it is familiar with matrix representation.
    다음은 Matrix의 예입니다.
    \begin{bmatrix}
    1 & 3 & 5 & 7 \\
    2 & 4 & 6 & 8 \\
    3 & 6 & 9 & 12 
    \end{bmatrix}
    

    이 Matrix의 Shape는 (3,4)입니다. 지금까지 수학에서 행렬의 표기와 같습니다.
    실제로 Matrix는 2D Tensor이므로 두 개의 숫자로 표기합니다. 각 숫자에는 각 Dimension의 Elements 수를 넣습니다.

    아래 코드에서 Matrix Shape를 출력해 보겠습니다.



    4.4 .. :3D Tensor


    3D tensor has a shape (*3*,3,4).
    다음은 3D 텐서의 예입니다.
    3D Tensor가 되면, 수식으로서 표현이 어려워지므로, 코드 표기로 시켜 주세요.
    (3,4)의 행렬이 3개 늘어서 있는 것을 머리에 그려 보세요.
    이 경우 이 텐서의 Shape는 (3, 3, 4)입니다.
    [[[1, 3, 5, 7],[2, 4, 6, 8],[3 ,6, 9,12]],
    [[1, 3, 5, 7],[2, 4, 6, 8],[3 ,6, 9,12]],
    [[1, 3, 5, 7],[2, 4, 6, 8],[3 ,6, 9,12]]]



    5. 정리



    Tensor의 Shape의 의미, Python에서의 표현에 대해 정리했습니다.
    다음 번에는 Tensor의 예를 소개합니다.


    이름
    텐서
    표현
    Shape


    Scalar
    0D Tensor
    Not Available
    ()

    벡터
    1D Tensor
    (k)
    (k,)

    Matrix
    2D Tensor
    (j,k)
    (j,k)

    ..
    3D tensor
    (i,j,l)
    (i,j,l)


    6. 참고 자료


  • 텐서(Tensor) 이해(1) : Dimension
  • 좋은 웹페이지 즐겨찾기