ジュリアで基本データ型を変更する方法
概要
機械学習のような分野では、計算速度の向上やメモリの節約などのために、64ビットの実数ではなく32ビットの実数が配列のデータ型として使われます。そのため、PyTorchではテンソルを作ると、基本的にテンソルのデータ型は32ビットの浮動小数点数になってます。Juliaの機械学習パッケージにはFlux.jl
があり、これで実装された人工ニューラルネットワークは、Juliaの基本配列を入力として受け取ります。テンソルのような別のデータ構造を使わないという点は利点と言えますが、データ型を手動でFloat32に設定しなければならない面倒くささもあります。以下で、デフォルトのデータ型を変更する方法を紹介します。
コード1
ChangePrecision.jl
@changeprecision
マクロを使うと、begin ... end
で囲まれたコード内でデフォルトのデータ型が変わります。
julia> Pkg.add("ChangePrecision")
julia> using ChangePrecision
julia> rand(3)
3-element Vector{Float64}:
0.580516564576538
0.33915094423556424
0.3612907828959878
julia> @changeprecision Float32 begin
rand(3)
end
3-element Vector{Float32}:
0.0459705
0.0033969283
0.579983
環境
- OS: Windows10
- バージョン: Julia 1.8.2, ChangePrecision 1.0.0