일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 인공지능
- MATLAB
- 텝스
- Numerical Analysis
- obsidian
- Julia
- JAX
- 옵시디언
- matplotlib
- IEEE
- pytorch
- LaTeX
- 에러기록
- WOX
- 논문작성법
- teps
- ChatGPT
- Python
- 텝스공부
- Zotero
- 수치해석
- 우분투
- 수식삽입
- Linear algebra
- 생산성
- 고체역학
- Statics
- 논문작성
- Dear abby
- 딥러닝
- Today
- Total
목록연구 Research (93)
뛰는 놈 위에 나는 공대생
아직 jax가 한글화가 많이 안 되어있어서 기본적인 기능은 내가 적어놓으려고 한다. jax.vmap(fun, in_axes=0, out_axes=0, axis_name=None, axis_size=None, spmd_axis_name=None) function을 argument axes에 대해서 mapping해주는 기능. fun : mapping할 function in_axes : function에 들어가는 input을 의미한다. 정수, None, Python container(tuple/list/dict 모두 가능)을 지원한다. 이는 모두 mapping할 input array 축을 의미한다. 만약 fun의 argument가 array이면 in_axes에는 정수, None, 튜플(Integer, None..
Sampyl이라는 라이브러리를 사용하기 전에 간단한 예제가 있어서 posterior distribution과 sampler에 대한 tutorial을 좀 정리해보았다. $\begin{aligned} & Y \sim N\left(\mu, \sigma^2\right) \\ & \mu=\beta_0+\beta_1 x_1+\beta_2 x_2\end{aligned}$ 다음과 같이 $\beta$가 계수의 어떤 y와 x 간의 모델이 있다고 해보자. 이 문제에서는 $\beta=[2,1,4]$인 경우이다. 따라서 아래와 같이 $x_{0}=1, x_{1},x_{2}$에 대하여 $y$가 분포되어있다. # Number of data points N = 200 # True parameters sigma = 1 true_b = ..
코드 안에 네트워크가 2개가 있고 이 2개의 네트워크를 각각 다른 learning rate로 학습하고 싶을 때 사용하는 코드다. 아래와 같이 개별로 learning rate를 설정하면 net2 안에 있는 파라미터는 0.001로 학습되고 net1 안에 있는 파라미터는 0.01로 학습된다. optimizer = optim.Adam([ {'params': func.net1.parameters()}, {'params': func.net2.parameters(), 'lr': 0.001} ], lr=0.01) optimizer.param_groups[0]['capturable'] = True print(optimizer.param_groups[0]['lr']) print(optimizer.param_groups[1..
JAX는 아직 리눅스에서밖에 사용이 안된다. 그래서 윈도우에서 돌릴 수 있는 방법을 찾아보았는데 최신 버전은 불가능하고 예전 버전은 가능하다. JAX가 아직 초기이다보니 버전마다 많이 바뀌어서 불편한 점이 있지만 일단 시도한 경험을 공유한다. 아래 링크를 들어가면 대략적인 instruction을 알 수 있다. https://github.com/cloudhan/jax-windows-builder GitHub - cloudhan/jax-windows-builder: A community supported Windows build for jax. A community supported Windows build for jax. Contribute to cloudhan/jax-windows-builder deve..
pytorch 안에서 adam을 쓸 때 자꾸 위와 같은 에러가 떠서 이를 위해 optimizer = optim.Adam(func.parameters(), lr=args.lr) optimizer.param_groups[0]['capturable'] = True 다음과 같이 'capturable'을 true로 바꿔줘야했다. 그런데 다른 사람들의 라이브러리를 쓰다보면 optimizer가 라이브러리 안에 포함되어있어서 위와 같은 코드를 넣어주기 힘든 경우가 발생했다. 따라서 아래와 같이 가상환경 안에 있는 코드에 접근하여서 에러가 나는 부분을 주석처리해주었다. 이렇게 하는 이유는 실제로 위의 error가 코드 성능에 악영향을 미치지 않기 때문이다. params 및 state_steps이 CUDA tensor일 ..
최근에 다시 CUDA와 cuDNN를 설치하면서 예전에 썼던 설치법과 조금 다른 부분이 있어서 여기에 소개한다. 예전에는 CUDA 버전에 따른 cuDNN 버전을 찾아야해서 번거로움이 있었는데 CUDA 11.6부터는 cuDNN이 통일된 것으로 보인다. 그래서 이제는 cuDNN 용 폴더를 하나 만들어서 그 파일 안에 보관하고, 이에 대한 경로를 추가하면 된다. (이전 글을 보면 cuDNN 파일을 CUDA 폴더 안에 복사하라고 얘기했었다.) 이 방법도 물론 통하지만 새로운 manual에서는 다르게 설명한다. 다음 링크에서 매뉴얼을 읽어본 바에 따르면 방법은 다음과 같다. 1) cuDNN 파일을 다운 cuDNN zip 파일에서 알집을 풀면 다음을 확인할 수 있다. 각각의 폴더에는 bin\cudnn~(어쩌구).dl..
RuntimeError: Trying to backward through the graph a second time (or directly access saved tensors after they have already been freed). Saved intermediate values of the graph are freed when you call .backward() or autograd.grad(). Specify retain_graph=True if you need to backward through the graph a second time or if you need to access saved tensors after calling backward. 위와 같은 에러는 한 번 모델에서 for..
빠른 학습을 위하여 이미 학습된 파라미터를 가지고 오고 싶을 때가 있다. 그래서 이 글에서는 기본적인 모델 저장, 불어오기 뿐 아니라 내가 좀 더 커스터마이징 할 수 있는 방법에 대해서 고민했다. 1. 모델 저장 파이토치 매뉴얼에서는 다음과 같이 모델을 저장하라고 권한다. PATH = '(모델이름).pth' torch.save(modelA.state_dict(), PATH) 이렇게 해서 pth 파일을 저장할 수 있다. state_dict는 내부 상태 사전(internal state dictionary)으로서 학습된 모델의 매개변수를 저장한다. modelA.state_dict()를 출력하면 다음과 같은 형태가 나온다. 위의 OrderedDict는 dictionary 자료형인데 파이썬에서 순서 정렬에 유리하..
요즘 uncertainty에 대해 고민을 하다가 알게 되는 내용을 기록하고자 쓰는 글. 1. Matched uncertainty Matched uncertainty : the uncertain terms enter the state equation at the same point as the control input, which allows the control to dominate their effect (Khalil, nonlinear control) 2. Structured uncertainty & Unstructured uncertainty Uncertainty의 다른 분류로 structured and unstructured uncertainty로 나눌 수 있다. Structured uncerta..
x라는 변수를 z라는 변수로 mapping할 때 식으로 다음과 같이 표현한다고 하자. $z=T(x)$ 흔히 선형대수학에서는 transformation matrix $T$로 표현하면 $z=Tx$로 similarity transformation을 수행할 수 있었다. (T가 nonsingular일 때) 비선형 mapping인 경우에는 $z=T(x)$에서 T가 invertible해야한다. 이 말을 다르게 하면 inverse map $x=T^{-1}(z)$가 모든 $z\in T(D)$ (D는 T의 domain)에서 존재해야한다는 뜻과 같다. 보통 T가 함수로 표현되기 때문에 T의 미분은 z와 x에 대하여 continuously differentiable해야한다. A continuously differentiabl..