[Flux] cifar10 upgraded example

이전 cifar10 example에서 모델을 저장하고 읽어오는 부분을 추가 하고 , 외부 파라미터를 입력 받아 반영 하는 구조로 변경 하였다. training한 model을 저장하고 읽기 기능을 추가 하여 이어서 training을 할 수 있게 했다 epoch, batch size, 저장된 model 파일 로딩 여부,로그를 화면 또는 파일로 저장, gpu device , gpu device 를 선택 할 수 있게 했다. […]

[Flux] cifar10 upgraded example Read More »

[Flux] cifar10 example – gpu,minibatch, fix loss NaN

model-zoo : https://github.com/FluxML/model-zoo/blob/master/vision/cifar10/cifar10.jl 소스를 수정함 수정된 소스 : https://github.com/mrchaos/model-zoo/blob/master/vision/cifar10/cifar10_gpu_minibatch.jl 이 글을 보기전에 먼저 아래 글을 참조 하는 것이 좋다. 그리고 cifar10.jl을 이해하는데 도움이 될만한 jupyter notebook(html) ==> 여기 cifar10_gpu_minibatch.jl (몇가지 설명이 더 추가 되어 있음) 위의 첨부파일에 소스에서 “CUDAnative.device!(3)” 을 주석 처리 하면 첫번째 GPU에서 실행된다

[Flux] cifar10 example – gpu,minibatch, fix loss NaN Read More »

[Tip] tmux – 마우스 스크롤, 버퍼 설정

Atom-Juno 환경에서 기본 julia console은 리모트 서버 연결시 timeout 이 나서 다시 접속시 포트가 사용중으로 재접속이 안되고 에러 발생하는데 이 때 tmux를 사용하여 세션이 끊어지지 않게 유지 한다. 하지만 tmux의 기본 버퍼 크기가 작기 때문에 지나간 로그를 보기 어렵고 마우스 스크롤을 기본상태에서는 지원 되지 않는다 버퍼크기와 마우스 스크롤이 가능하게 .tmux.conf 파일에 아래와 같이 설정 하면된다

[Tip] tmux – 마우스 스크롤, 버퍼 설정 Read More »

[Flux] mnist example with gpu, mini-batch, fix loss NaN

소스 URL : https://github.com/mrchaos/model-zoo/blob/master/vision/mnist/mlp_gpu_minibatch.jl model zoo의 mnist예제 중 mlp.jl 소스에 몇가지 이슈가 있어 수정하고 미니배치를 적용 하였다. Julia 1.3.1, Flux 0.10.1 을 사용 하였다. 가장 큰 이슈는 loss function에서 NaN이 발생하여 train이 제대로 되지 않는 문제를 수정 했다. loss가 아래와 같이 정의 되는 경우 mini-batch를 적용하면 계산 되는 batch 데이터가 적기 때문에 자주 NaN이 발생한다.

[Flux] mnist example with gpu, mini-batch, fix loss NaN Read More »

[Flux] MNIST Example

여기서 사용하는 Flux는 v0.10.1 이다. Model-zoo의 MNIST 예제를 참고(https://github.com/FluxML/model-zoo/blob/master/vision/mnist/mlp.jl) zoo의 mnist예제 mlp가 gpu모드에서 재대로 동작하지 않는데 주요 원인은 onecold function이 gpu모드에서 문제를 일으킨다. 위 예제에서 accuracy function에 onecold를 사용하고 train!에서 accuracy를 사용하기 때문에 문제가 된다. 따라서 아래와 같이 바꿔 준다 accuracy(x,y) = mean(onecold(m(x)) .== onecold(y)) ==> accuracy(x,y) = mean(onecold(m(x)|>cpu) .== onecold(y|>cpu)) 또한 scalar연산을 할 때

[Flux] MNIST Example Read More »

[Tip] How to Julia upgrade

Julia 버전 쉬운 업그레이드 방법 두번째 버전이 바뀌는 경우 예를 들어 1.2 에서 1.3으로 옮겨 갈 때 https://discourse.julialang.org/t/how-to-upgrade-easily/27753/8 https://discourse.julialang.org/t/julia-v1-2-0-has-been-released/27742/5 Julia version 마이너 upgrade 예) 1.3.0 -> 1.3.1 Julia 버전 체계는 a.b.c 예를들어 1.3.0 형식으로 구성되는데 1.3.x 끼리는 호환이 있고 컴파일된 패키지등을 같이 사용한다. 따라서 julia 1.3.1을 다운로드 받아 설치하고 path만 잘 설정 하면 된다 우분투

[Tip] How to Julia upgrade Read More »

[Tip] Julia version 마이너 upgrade 1.3.0 -> 1.3.1

Julia 버전 체계는 a.b.c 예를들어 1.3.0 형식으로 구성되는데 1.3.x 끼리는 호환이 있고 컴파일된 패키지등을 같이 사용한다. 따라서 julia 1.3.1을 다운로드 받아 설치하고 path만 잘 설정 하면 된다 우분투 리눅의 경우 아래와 같이 .bashrc 파일에 설정하면 된다. 그리고 IJulia는 빌드만 새로 하면된다. (먼저 Jupyter notebook을 중지한다) Pkg>build IJulia 새로 빌드 한 후 Jupyter notebook을 띄워 보면

[Tip] Julia version 마이너 upgrade 1.3.0 -> 1.3.1 Read More »

[Julia] Julia Programming for Operations Research : Chap10 – Lagrangian Relaxation

Mixed Integer Problem(MIP)에서 조건을 완화 하여 문제를 해결하기 위해 Lagrangian Relaxation을 사용한다. 예제는 “Facility Location Problem”중 “p-Median Problem”의 예이다. 고객들의 위치와 고객이 요구하는 서비스 수요량과 그 서비스를 제공하기 위한 시설을 도입 또는 건설하기 위한 후보 위치와 후보 위치에서 고객에게 서비스를 하기 위한 운송비용이 주어 졌을 때 운송비용을 최소화하는 장소에 시설을 건설하기 위한 최적의 장소를 찾는

[Julia] Julia Programming for Operations Research : Chap10 – Lagrangian Relaxation Read More »