[Julia,JuliaDB,Flux] JuliaDB with lastest Flux

JuliaDB와 최신 Flux와 Turing을 사용하고 싶은데 JuliaDB 설치시에

Flux는 0.8.3, Turing은 0.8.2 버전으로 고정되어 최신 버전의 Flux(v0.12.4), Turing(v0.16.5)을 설치 할 수 없다.

이는 StatsBase의 버전이 Project.toml 에는 0.33 까지 있는데 여기에 현재 까지 나온 버전 0.33.8을 추가하고

JuliaDB를 설치 하면된다.

먼저 Flux, Turing 설치 후 JuliaDB를 설치 하면된다.

2021.6월에 JuliaDB (v0.13.1)를 포크 받아 수정 했다

https://github.com/mrchaos/JuliaDB.jl

위 버전을 설치 하려면

Pkg>add https://github.com/mrchaos/JuliaDB.jl

Flux 를 최신 버전으로 설치 했기 때문에

기존의 JuliaDB.ML 튜토리얼에서 Flux사용 부분에 있어 최신 버전에 맞게 수정 하면된다.

model = Chain(
    Dense(ML.width(input_sch),32,relu),
    Dense(32,ML.width(output_sch)),
    softmax
    )
loss(x,y) = Flux.mse(model(x),y)
#Flux 0.8.2
#opt = Flux.ADAM(Flux.params(model))

#Flux 0.16.x
opt = Flux.ADAM()

evalcb = Flux.throttle(()->@show(loss(first(data)...)),2)

for i = 1:1000
    # Flux 0.8.2
    # Flux.train!(loss,data,opt,cb=evalcb)

    # Flux 0.16.x
    Flux.train!(loss,Flux.params(model),data,opt, cb = evalcb)
end

Flux를 최신버전으로 설치전에 JuliaDB에서 CSV데이터를 바이너리로 저장한것을 최신버전 설치 후 로딩 하는 경우 오류가 발생하니 데이터를 다시 바이너리로 저장 후 로딩해야 한다.

예시)

train_table = loadtable("data/titanic/train.csv")
save(train_table,"data/titanic/train_bin")
train_table = dropmissing(load("data/titanic/train_bin"))

“[Julia,JuliaDB,Flux] JuliaDB with lastest Flux”의 1개의 댓글

  1. 핑백: [Julia,JuliaDB,Flux] JuliaDB Tutorial – Flux 0.16.x – Julia ?

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다