[JAX] Pytree 사용법 + 실용적인 방법들
·
카테고리 없음
JAX에서 함수 연산 속도를 빠르게 하기 위해서 @jit을 사용해서 jit compile을 한다.보통 입력이 jax array나 튜플이면 크게 문제가 되지 않는데 나의 경우에는 사용하고 싶은 함수 내용이 복잡해지면서 class를 쓰고 싶었다. 특정 변수들을 모아놓은 집합을 계속 옮겨야 했기 때문이다.(structure와 비슷하게) 그런데 class를 argument로 쓰면 다음과 같은 오류를 보게 된다. TypeError: Cannot interpret value of type as an abstract array; it does not have a dtype attribute  이 때 사용해야 하는 것이 pytree이다.  1. Pytree의 정의   In JAX, we use the term pyt..
[LaTeX] 참고 문헌 삽입 (bibtex, natbib, biblatex)
·
기타/논문작성 Writing
이 글에서는 overleaf나 latex에서 참고문헌을 삽입하는 방법에 대해서 다룬다.본인이 서지프로그램(endNote, Zotero, Mendeley 등)을 쓰고 있다면 bib 파일을 출력해서 쉽게 사용할 수 있지만가장 기본적인 방법부터 패키지 사용법에 대해 다룬다.자세하게 옵션을 설정하는 것은 나중에 작성한다. bibtex 파일은   대부분의 논문 사이트에서 제공하는 서지 파일 형식이다. 이 bibtex를 모아서 bib 파일을 직접 만들 수도 있다.  1. 기본 방법 참고문헌을 삽입할 때는 일일이 bibitem으로 넣어주는 방법이 가장 기본적일 것이다. \begin{thebibliography}{widest entry} \bibitem[label1]{cite_key1} bibliographic inf..
[Gym] Gymnasium custom environment
·
프로그래밍 Programming
기존에 있는 environment에서 설정을 바꾸고 싶어서 기존 environment를 상속한 다음에 custom하는 코드를 만든다. 나의 경우에는 initial state를 지정하고 싶어서 따로 만들었다. import gymnasium as gymimport numpy as npimport randomfrom IPython.display import clear_outputimport matplotlib.pyplot as pltfrom gym.envs.toy_text.frozen_lake import FrozenLakeEnvclass CustomFrozenLakeEnv(FrozenLakeEnv): def __init__(self, is_slippery=False, initial_state=0): ..
[JAX] 지속적인 kernel crash 여러 가지 원인
·
카테고리 없음
jupyer lab/notebook을 쓰다가 kernel이 터지는 경우가 있는데 다음과 같은 경우들이 있다. https://github.com/microsoft/vscode-jupyter/wiki/Kernel-crashes Kernel crashesVS Code Jupyter extension. Contribute to microsoft/vscode-jupyter development by creating an account on GitHub.github.com  내가 겪은 대표적인 원인들은 다음과 같다.1. 라이브러리 설치 실패 - 호환 안됨 등의 문제2. gpu에 업로드한 데이터가 너무 많아서 문제  1번의 경우에는 재설치하고 버전 호환을 신경써서 설치해야한다. 아나콘다 등의 버전 관리 시스템을 쓰면..
[기록] 학생비자 F-1 발급 과정 2024년 기준
·
유학 생활 Daily
올해 비자발급 프로세스를 거친 과정 기록 1. I-20 서류 받기 이 프로세스는 학교 측에서 처리를 해줘야 한다.내가 입학한 학교의 경우에는 나에게 특정 financial certification form와 여권 사본을 제출하도록 했다.RA나 TA와 같이 펀딩을 받는 경우에는 Expected expense 대비 펀딩을 비교해서 대충 맞는다고 내면 되는데그렇지 않은 경우에는 계좌 인증을 하는 등 본인이 학비와 생활비를 낼 여력이 있다는 것을 증명해야 한다. 그렇게 하면 I-20 서류를 학교에서 전달해준다. 처음에 F비자인지 J비자인지 학교에서 물어보는데 교환학생과 같이 단기로 다녀오는 게 아니라면 보통 F비자를 신청하는 게 맞다.자세한 내용은 다음 링크 참고 : https://usa-esta.net/ko/..
[Python] 각종 라이브러리 버전체크 방법
·
프로그래밍 Programming
대부분 패키지는 __version__ 방법이 권장된다고 한다.import matplotlibmatplotlib.__version__>> '1.1.1'import numpyprint(numpy.__version__)
[에러기록] XlaRuntimeError: UNIMPLEMENTED: Kernel launch needs more blocks (3199360032) than allowed by hardware (2147483647).
·
프로그래밍 Programming
다음 글 참고 : https://github.com/google/jax/issues/5733 Jax throws internal XLA error for sufficiently large batched outer product on GPU · Issue #5733 · google/jaxCode: import jax.numpy as jnp A = jnp.ones((4, 1024*1024, 1)) B = jnp.ones((4, 1024*1024, 1)) tot = 0 def f(A, B): return A[:,:,None,:] * B[:,None, :, :] f(A, B) throws /usr/local/lib/python3.6/dis...github.com 너무 많은 메모리를 요구해서 발생하는 에러.실제로..
[Julia] 변수 Variables
·
프로그래밍 Programming
이 문서는 Julia 공식 문서를 제가 정리한 것으로 원본은 다음 사이트에 있습니다. 1. 변수 이름 변수 이름에 제약이 거의 없다는 것이 julia의 특징이다. 1) $\delta$와 같은 그리스어나 한국어, 중국어도 가능하다.2) $\delta$를 쓰고 싶으면 코드에 \delta 후에 tab을 누르면 변환하도록 한다.$\hat{\alpha}^{2}$ 역시 \alpha-tab-\hat- tab-\^(2)-tab 조합으로 사용 가능하다.3) 변수의 타입을 미리 선언하지 않고도 아무 값이나 넣을 수 있다. julia> x = 1.01.0julia> y = -3-3julia> Z = "My string""My string"julia> customary_phrase = "Hello world!""Hello w..
[서버] 특정 아이피만 허용 (유동 아이피일 때는?)
·
기타
특정 아이피만 허용하는 방법은 sudo vim /etc/hosts.allow/etc/hosts.deny sshd: ALL 다음을 통해 모든 아이피를 거절하고, sudo vim /etc/hosts.allow sshd: 아이피추가, 아이피추가 하면 된다. 그런데 특정 아이피만 가능하도록 하면 곤란한 경우가 있다. 예를 들면 유동아이피라서 특정 아이피 차단이 곤란할 때이다. 1) 특정 mac address 허용 같은 서브넷이 아니면 불가능하다고 한다. 2) 특정 아이디만 사용 가능하도록 허용 /etc/ssh/ssdh_config AllowUsers username1 username2 username3 를 추가하면 된다고 하는데 이렇게 해서 진짜 아이디만 살려놓을 수도 있다. 3) 포트노킹 특정 패턴의 포트 요..
[에러기록] moviewriter ffmpeg unavailable; using pillow instead.
·
프로그래밍 Programming/파이썬 Python
matplotlib에서 animation 클래스를 쓰면 발생하는 오류이다. 이는 ffmpeg라는 코덱을 설치하지 않았기 때문에 mp4를 만들지 못해서 발생한다. 따라서 ffmpeg를 설치하면 된다. 또한 가상환경 상에서도 ffmpeg를 파이썬과 호환되는 라이브러리를 설치할 수도 있다. 1. ffmpeg 설치 윈도우 설치법과 우분투 설치법이 다른데, 나는 우분투에서만 설치했다. 만든 이 사이트 : https://www.gyan.dev/ffmpeg/builds/#release-builds Builds - CODEX FFMPEG @ gyan.dev FFmpeg is a widely-used cross-platform multimedia framework which can process almost all co..