줄리아에서 기본 자료형 변경하는 방법
개요
머신러닝과 같은 분야에서는 계산 속도 향상, 메모리 절약 등을 위해 배열의 자료형으로 64비트의 실수 대신에 32비트의 실수를 쓴다. 그래서 파이토치에서는 텐서를 만들면 기본적으로 텐서의 자료형이 32비트 부동소수점 실수이다. 줄리아의 머신러닝 패키지로는 Flux.jl
이 있는데, 이로 구현된 인공신경망은 줄리아의 기본 배열을 입력으로 받는다. 텐서와 같은 별개의 데이터 구조를 쓰지 않는 다는 점은 장점이라고 볼 수 있으나, 자료형을 일일이 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
- Version: Julia 1.8.2, ChangePrecision 1.0.0