일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- obsidian
- 생산성
- 수식삽입
- teps
- Python
- 논문작성
- 인공지능
- MATLAB
- 옵시디언
- 고체역학
- Dear abby
- 논문작성법
- 텝스
- Linear algebra
- ChatGPT
- pytorch
- Numerical Analysis
- Zotero
- 에러기록
- WOX
- LaTeX
- 수치해석
- 우분투
- Julia
- IEEE
- JAX
- Statics
- 딥러닝
- 텝스공부
- matplotlib
- Today
- Total
목록분류 전체보기 (434)
뛰는 놈 위에 나는 공대생
우리가 MATLAB에서 랜덤함수를 쓸 때 별 생각없이 쓴다. 코드 한 줄이면 원하는 사이즈의 랜덤한 숫자를 원하는 분포(ex. 가우시안 분포)에서 추출할 수 있다. 그런데 실제로 이 값들이 어떻게 생성되는지는 잘 모른다. 임의의 확률분포가 있을 때 그 확률분포를 따르는 난수를 생성하기 위해서는 기본적으로 uniform distribution이 필요하다. 그래서 처음에는 uniform distribution을 만드는 방법을 배우고 확장해나가는 흐름이다. Uniform distribution interval $(0,m)$에서 uniformly distributed integer $z_{i}$를 구하기 위한 알고리즘은 다음과 같다. general한 알고리즘으로는 $z_n = f(z_{n-1},\ldots,z_..
최적화 문제를 풀기 위해서는 본인이 직접 솔버를 만들 수도 있겠지만 보통 다른 사람이 만든 솔버를 사용한다. YAMLIP은 최적화 문제를 정의하도록 도와주는 프로그램이라고 보면 된다. 그런데 문제를 풀기 위해서는 solver가 필요하고 기본적으로 YAMLIP에서는 'quadprog', 즉, quadratic programming을 사용할 수 있다. 그러나 더 나은 솔버를 사용하기 위해 잘 알려진 mosek을 쓰고자 하였다. mosek은 학생과 같은 academic 목적으로 사용하는 사람들에게는 1년 간 라이센스를 무료로 쓸 수 있게 해준다. 다음 사이트에서 personal academic license를 눌러서 학교 이메일 주소와 기관명을 입력하면 메일을 보내준다. 메일 인증을 통해서 lic 파일을 받을..
MATLAB은 기본적으로 자신들이 지정해놓은 경로에서 파일을 찾아서 사용한다. 함수 파일을 따로 만들어서 쓰면 당연히 그 함수 파일을 읽을 수 있도록 함수 파일을 사용하는 코드가 있는 경로에 같이 함수 파일이 있거나 OR 경로에 함수파일이 있는 경로를 추가해야 한다. 1. 코드로 추가하는 방법 addpath라는 함수를 이용한다. addpath('C:/Users/user/문서/프로그램/') 이런 식으로 경로를 추가한다. 경로에 한글이 들어가도 다행히 된다. 2. 직접 추가하는 방법 위 그림의 경로 설정에 들어가서 여기에 추가하면 좋은 이유는 영구적으로 경로가 보존되기 때문에 MATLAB을 지웠다 켜도 경로를 계속 쓸 수 있다는 점이다. 다만 그 경로가 삭제되거나 할 경우에는 관리가 어렵기 때문에 보통은 항..
영어 공부하기에 좋은 사이트 모음 듣기 영화 듣기 (넷플릭스가 영어자막이 잘 되어있어서 좋음, 한국 ott 사이트는 영어자막을 지원을 안 해주는 듯) TED talks 유튜브 채널 스마트폰 앱 : 안드로이드 기준 [리스너] 앱 읽기 뉴욕 타임즈나 월스트리트 저널 Dear abby 단어 말해보카 앱 (각종 예시 문장과 함께 학습하며 복습 플랜을 잡아줘서 좋음. 유료지만 값어침 함/ 2인 모아서 74500원 정도) Quizet (암기카드로 테스트하기 좋음. 테스트를 무제한으로 하려면 유료지만 무료로도 어느정도 할 만함) 말하기 발음 연습 겸 하는데 https://www.google.com/intl/en/chrome/demos/speech.html Chrome Browser Click on the microp..
기존에 자주 사용되면 파이토치나 텐서플로에서도 그렇듯이 학습한 모델을 저장하는 것은 필수이다. 나중에 다시 결과를 출력해야하거나 Transfer learning 등에 활용해야하기 때문이다. 이 글에서는 JAX 모델을 학습한 다음, 저장하고 다시 로드하는 방법에 대해서 다룬다. 1. 학습 후 저장 이 글에서는 model이라는 class 안에 optimizers를 정의하고 그 안에 있는 loss 등의 함수로 학습을 하고 있었다. class 안에 self.opt_init, \ self.opt_update, \ self.get_params = optimizers.adam(optimizers.exponential_decay(1e-3, decay_steps=1000, decay_rate=0.9)) self.opt_..
\usepackage{asmthm}를 쓰면 아래와 같은 에러가 뜰 수 있다. LaTeX Error: Command \openbox already defined. Or name \end... illegal, see p.192 of the manual. See the LaTeX manual or LaTeX Companion for explanation. Type H for immediate help. ... l.426 \vrule\hfil}} Your command was ignored. Type I to replace it with another command, or to continue without it. 이 에러는 \openbox라는 커맨드가 여러 패키지에 정의되어있어서 발생하는 오류이기 때문에 다음..
JAX를 통해 병렬로 뉴럴 네트워크를 학습하는 예제를 고민하였다.JAX에서 제공해주는 예제도 있지만 이는 아주 심플한 선형 모델의 파라미터를 regression하는 문제이기 때문에 실제 뉴럴 네트워크 모델과는 괴리가 좀 있어서 직접 예제를 만들었다. JAX 0.3.1. 버전 1. JAX에서 제공하는 예제 import jaxjax.devices()>> [GpuDevice(id=0, process_index=0), GpuDevice(id=1, process_index=0), GpuDevice(id=2, process_index=0), GpuDevice(id=3, process_index=0)] 필자는 gpu 4개를 가지고 병렬 컴퓨팅을 사용했다. import numpy as npimport jax.numpy..
matplotlib에서 log scale그래프를 그리다가 다음과 같이 y축 숫자표기가 너무 크다는 것을 발견하고 이를 수정하기 위한 코드를 작성하였다. 여러 방법을 찾아보긴 했는데 내가 느끼기에 가장 간단하고 범용성이 높은 방법은 다음과 같다. 1. axes 인스턴스 필요 대부분의 matplotlib 그림에서 고급 기능을 쓰기 위해서는 axes 인스턴스를 필요로 한다. 이 axes는 내가 그리고자 하는 figure에 할당된 class인데 그 내부에서 구체적으로 설정하는 매서드가 담겨있어서 이것에 접근해야한다. plt.plot(num_history, train_mse_history) plt.ylabel('MSE') plt.xlabel('epoch') plt.yscale('symlog') ax = plt.g..
논문 작성할 때 편하게 수식을 쓰거나 숫자 및 단위를 쓰기 위해 매크로를 만들 수도 있지만 기존에 있는 package를 사용하는 것도 하나의 방법이다. 논문 양식에서 physics와 siunitx 패키지가 있었는데 이를 잘 활용하면 좋다 1. 미분/편미분 표기 \usepackage{physics} \dv{x}{t} = \dfrac{\mathrm{d}x}{\mathrm{d}t} \pdv{x}{t} = \dfrac{\partial{x}}{\partial{t}} 다음과 같이 $\mathrm{d}x$와 $\partial{x}$는 위와 같은 분수를 많이 쓸 때 계속 써주기 귀찮다는 문제가 있다. 따라서 dv와 pdv 명령어를 이용해서 편하게 작성할 수 있다. 2. 숫자에 단위 표기하기 글 안에서 숫자를 쓸 때 $..
개발이나 알고리즘 테스트 등의 목적으로 리눅스 환경에서 프로그래밍 및 시뮬레이션을 해야하는 경우가 있다. 실제 데스크탑에 우분투를 설치해서 사용하면 좋겠지만 기본적으로 윈도우나 맥OS를 쓰고 있을 것이다. 여기서는 윈도우11을 기준으로 설명한다. 또한 멀티 부팅의 경우에는 시도할 생각을 못해서 제외한다. 1. 가상환경에서 설치 컴퓨터 가상화 프로그램인 VMware에서 우분투를 설치할 수 있다. 다른 가상환경을 만들 수 있는 소프트웨어면 괜찮을 것으로 생각된다. 1) VMware 설치 2) VMware에서 Ubuntu.iso 파일을 이용해 우분투 설치 그러나 이런 VMware를 사용할 때는 충분한 하드디스크,메모리가 필요하고 컴퓨터의 연산속도가 좋아야 버벅임없이 사용할 수 있다. 나의 경우에는 노트북에 설..