logo

줄리아의 순열차원 함수와 그 응용 permutedims 📂줄리아

줄리아의 순열차원 함수와 그 응용 permutedims

개요

줄리아의 내장 함수 permutedims는 어떻게 보면 전치행렬의 일반화로써, 다차원 배열의 차원을 다루는데 유용하다.

코드

텐서의 차원 전환

julia> A = reshape(Vector(1:8), (2,2,2))
2×2×2 Array{Int64, 3}:
[:, :, 1] =
 1  3
 2  4

[:, :, 2] =
 5  7
 6  8

julia> B = permutedims(A, (3, 1, 2))
2×2×2 Array{Int64, 3}:
[:, :, 1] =
 1  2
 5  6

[:, :, 2] =
 3  4
 7  8

텐서는 프로그래밍적으로 유용하지만 그만큼 헷갈린다. 특히 이미지에 관련된 딥러닝 태스크에 이 함수는 아주 요긴하게 쓰일 수 있다.

문자열 행렬의 전치행렬

julia> A = ["a" "b" "c"
            "d" "e" "f"]
2×3 Matrix{String}:
 "a"  "b"  "c"
 "d"  "e"  "f"

julia> A'
ERROR: MethodError: no method matching adjoint(::String)

julia> permutedims(A)
3×2 Matrix{String}:
 "a"  "d"
 "b"  "e"
 "c"  "f"

보다시피 문자열의 행렬은 '을 통해서 행렬 전치를 취할 수 없지만, permutedims를 사용해서 사실상 행렬 전치와 같은 기능을 사용할 수 있다1.

환경

  • OS: Windows
  • julia: v1.11.1