[JAX] optax에서 learning rate 확인하는 방법
·
프로그래밍 Programming
inject_hyperparams라는 함수로 optax의 optimizer를 묶어서 사용하면 hyperparams를 관찰할 수 있다. # Wrap the optimizer to inject the hyperparameters optimizer = optax.inject_hyperparams(optax.adamw)(learning_rate=schedule) def fit(params: optax.Params, optimizer: optax.GradientTransformation) -> optax.Params: opt_state = optimizer.init(params) # Since we injected hyperparams, we can access them directly here print(f'A..
[JAX] NaN, Inf 값 처리 및 조건에 맞는 요소 찾기
·
프로그래밍 Programming
JAX에서 값을 쓰다가 어려운 부분이 있으면 대체로 numpy에 있는 함수들과 비슷한 것이 많아서 찾기 쉽다. 1. NaN 값 찾기 import jax.numpy as jnp a = jnp.array([jnp.nan,1,0,jnp.nan]) x = jnp.isnan(a) print(x) >> [ True False False True] 2. +-Inf 값 찾기 import jax.numpy as jnp a = jnp.array([jnp.inf,1,0,-jnp.inf]) x = jnp.isinf(a) print(x) >> [ True False False True] 1,2번 항목을 보면 boolean array으로 나오기 때문에 위 코드에서 'a'라는 array에 대해 indexing하면 NaN값을 추출할..
[MATLAB] 배열에서 이상치 제거 및 조건에 맞는 요소 찾기
·
프로그래밍 Programming/매트랩 MATLAB
데이터의 차원이 높아질 수록 개별 데이터를 확인하는 것이 어렵고 필요없는 데이터를 제거하는 것이 어려워진다. 이를 위한 다양한 방법들을 알아보기로 한다. 1. 이상치 제거 배열에서 이상치를 제거하는 함수는 MATLAB에서 R2018b 이후부터 rmoutliers로 제공하고 있다. 이상값 감지는 평균에서 3 표준편차를 초과해 떨어져있는 요소를 기준으로 한다. 기준은 평균, 중앙값 등 기준을 다양하게 잡을 수 있다. [B,TFrm,TFoutlier,L,U,C] = rmoutliers(kt_s_pred) ; # L : 하한 임계값, U : 상한 임계값, C : 중심값, TFoutlier : 이상값 표시자, TFrm : 제거된 데이터 2. 조건에 맞는 요소 출력 B = A(A>0.0) # A배열에서 0.0보다 ..
[리눅스/우분투] TurboVNC와 mobaXterm 같이 사용하기 (GUI 사용)
·
프로그래밍 Programming/리눅스 우분투 Ubuntu
mobaXterm은 리눅스 서버와 다양한 방식으로 연결할 수 있도록 돕는 프로그램이다. (꼭 리눅스 서버와 연결하는 것은 아니지만 주로 SSH 연결을 통해 많이 사용한다. 그런데 GUI를 보면서 리눅스 서버를 사용하고 싶을 수 있다. 이전에는 Anydesk (원격접속 프로그램)를 통해서 사용했는데 무료계정이라면 여러 명이 동시에 GUI를 쓸 경우에 Anydesk를 쓰는 것이 불가능하기 때문에 다른 VNC 서버/클라이언트 프로그램을 찾아봐야 한다. 이전 글에서 TurboVNC를 설치하는 방법에 대해 다뤘었다. TurboViewer가 있으면 사용가능한데 굳이 Turbo Viewer 없이 mobaXterm으로도 접속 가능하다. 여기서는 TurboVNC를 통해 mobaXterm으로 접속하는 방법을 소개한다. (..
[에러기록] cudnn 버전 문제 (E external/xla/xla/stream_executor/cuda/cuda_dnn.cc:433] Loaded runtime CuDNN library: 8.8.0 but source was compiled with: 8.9.1. CuDNN library needs to have matching major version and equal or higher minor version. ..
·
프로그래밍 Programming
JAX 사용시 발생할 수 있는 문제점이다. JAX의 최신버전은 가장 최신의 CUDA, cuDNN 버전을 요구하기 때문에 다음과 같은 에러를 만나게 된다. E external/xla/xla/stream_executor/cuda/cuda_dnn.cc:433] Loaded runtime CuDNN library: 8.8.0 but source was compiled with: 8.9.1. CuDNN library needs to have matching major version and equal or higher minor version. If using a binary install, upgr CUDA12.1 버전에 cuDNN 8.9.1버전(현재 기준으로 가장 최신버전은 8.9.2인데 보통 요구하는 cuDN..
[MATLAB] 3D plot 축 반전시키기 (뒤집기)
·
프로그래밍 Programming/매트랩 MATLAB
아래 그림을 보면 u(그림 상에서는 y축에 해당함)가 15일 때 x가 -15인 형태로 3d plot을 그렸다. 그런데 내가 원하는 것은 u가 15일 때, x도 15인 형태로 그리고 싶을 수 있다. 즉, x축을 반전시키거나 y축을 반전시키고 싶을 수 있다. plot할 때 X,Y축 자체의 순서를 바꿔서 plot하는 것도 방법일 수 있지만 3d plot은 X,Y,Z가 모두 행렬로 되어있기 때문에 이를 신경써서 바꿔주는 게 쉽지 않다. 따라서 다음 방법을 쓴다. figure ; s = surf(X,U,g1_true); s.EdgeColor = 'none'; xlabel('x') ; ylabel('u') ; set(gca,'Ydir','reverse') % 축 반전 다음과 같이 한 축을 반전시킨 다음에 돌려가면서..
[MATLAB] 경로추가 방법
·
프로그래밍 Programming/매트랩 MATLAB
MATLAB은 기본적으로 자신들이 지정해놓은 경로에서 파일을 찾아서 사용한다. 함수 파일을 따로 만들어서 쓰면 당연히 그 함수 파일을 읽을 수 있도록 함수 파일을 사용하는 코드가 있는 경로에 같이 함수 파일이 있거나 OR 경로에 함수파일이 있는 경로를 추가해야 한다. 1. 코드로 추가하는 방법 addpath라는 함수를 이용한다. addpath('C:/Users/user/문서/프로그램/') 이런 식으로 경로를 추가한다. 경로에 한글이 들어가도 다행히 된다. 2. 직접 추가하는 방법 위 그림의 경로 설정에 들어가서 여기에 추가하면 좋은 이유는 영구적으로 경로가 보존되기 때문에 MATLAB을 지웠다 켜도 경로를 계속 쓸 수 있다는 점이다. 다만 그 경로가 삭제되거나 할 경우에는 관리가 어렵기 때문에 보통은 항..
[리눅스] 윈도우 환경에서 우분투 사용하는 방법
·
프로그래밍 Programming/리눅스 우분투 Ubuntu
개발이나 알고리즘 테스트 등의 목적으로 리눅스 환경에서 프로그래밍 및 시뮬레이션을 해야하는 경우가 있다. 실제 데스크탑에 우분투를 설치해서 사용하면 좋겠지만 기본적으로 윈도우나 맥OS를 쓰고 있을 것이다. 여기서는 윈도우11을 기준으로 설명한다. 또한 멀티 부팅의 경우에는 시도할 생각을 못해서 제외한다. 1. 가상환경에서 설치 컴퓨터 가상화 프로그램인 VMware에서 우분투를 설치할 수 있다. 다른 가상환경을 만들 수 있는 소프트웨어면 괜찮을 것으로 생각된다. 1) VMware 설치 2) VMware에서 Ubuntu.iso 파일을 이용해 우분투 설치 그러나 이런 VMware를 사용할 때는 충분한 하드디스크,메모리가 필요하고 컴퓨터의 연산속도가 좋아야 버벅임없이 사용할 수 있다. 나의 경우에는 노트북에 설..
[git blog] jekyll 테마 적용하면서 발생한 에러들
·
프로그래밍 Programming
이번에 블로그를 git으로 만들어볼까하고 테마 적용을 시도했다가 수많은 에러를 직면한 것을 기록하고자 한다. 1. 버전 호환성 문제 처음에 Ruby를 설치할 당시에 잘 모르고 가장 최신 버전인 3.2.2를 설치했는데 나중에 이런저런 것들을 설치하다가 버전이 호환 안된다는 것을 깨달았다. 오류를 자세히 보면 Ruby < 3.2 이런 식으로 버전이 문제라고 알려준다. 그리고 구글 검색하다가 Ruby 3.0 이상부터는 무슨 문제가 발생할 수도 있다는 말을 봤다. 안전하게 설치하려면 2.7 정도의 버전이 좋은 것 같다. 2. 파일 경로 한글 포함 문제 내가 지정해놓은 github 로컬 저장소에는 한글이 포함되어있는데 이 때문에 아래와 같은 오류가 났다. Encoding::CompatibilityError: in..
[우분투] ohmyzsh powerlevel10k 테마 적용 (feat. 심볼 깨짐 해결)
·
프로그래밍 Programming/리눅스 우분투 Ubuntu
0. Intro oh-my-zsh를 설치했다. 우분투에서 oh-my-zsh를 설치하는 방법은 다른 글(링크1, 링크2)에서 잘 나와있어서 그 글을 참고하면 될 것 같다. 여기서 다루고자 하는 것은 powerlevel10k 테마를 우분투에서 사용하는 법이다. 왜냐하면 이전에 본 글에서는 글쓴이가 mac을 사용하기 때문에 설치과정에서 적용한 터미널의 특성 상 테마를 적용하더라도 심볼이 깨지지 않았지만, 필자는 우분투를 쓰기 때문에 설치 과정에서 심볼이 깨지는 현상이 발생되었기 때문이다. 사람들이 많이 쓰는 테마인 agonster 테마 말고 더 예쁜(!) 테마를 쓰고 싶었다. powerlevel10k 테마를 적용하고 옵션을 symbol 활성화로 해놓으면 다음과 같다. 다음과 같이 예쁘게 심볼도 있는 터미널을 ..