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