본문 바로가기
반응형

분류 전체보기80

파이토치, 미분 자동추적 기능 (Autograd) 에 대하여 예제 함수 \(n\) 개의 데이터 \(x_1,..., x_n\)이 주어졌다고 할 때, 우리는 다음의 함수 \(f\)를 정의 할 수 있다. \[ y = f(\beta) = \frac{1}{n}\sum_{i=1}^{n}(x_i - \beta)^2 \] 위의 함수는 통계학에서는 유명한 함수인데, 왜냐하면 데이터의 평균, 즉 표본 평균이 위의 함숫값을 최소화시키는 함수이기 때문이다. 오늘은 이 함수를 통하여 파이 토치의 auto.grad 기능에 대하여 알아보고자 한다. 데이터 생성 파이토치를 불러 데이터를 생성한다. import torch # set seed torch.random.manual_seed(1234) ## data = torch.rand(10) * 10 data ## tensor([0.2898, 4.. 2020. 7. 18.
Forward propagation, R 버전 오늘은 뉴럴 넷 (Neural network)을 공부하기 위해서 앞으로 우리가 다룰 뉴럴넷 중 가장 현실적이고, 어떤 일이 벌어지고 있는지 상상이 가능한 뉴럴 넷을 정의하는 것을 목표로 하자. 우리가 오늘 예로 생각할 뉴럴 넷은 다음과 같다. 2단 레이어이고, 2개의 녹색 노드(node)는 input 레이어를 형성하고 있고, 빨강색의 노드는 output 레이어를 형성하고 있으며, 회색의 3개 노드는 히든 레이어를 형성한다. 자 이제부터, 녹색 노드에는 무엇이 들어가는지, 그리고, 어떤 과정을 거쳐서 빨강색의 값이 나오는지에 대하여 알아보자. 이러한 전 과정을 Forward propagation이라고 부른다. propagation의 뜻은 증식, 혹은 번식인데, 식물이나 동물이 자라나는 것을 의미하는데, 녹.. 2020. 7. 17.
티스토리 블로그 MathJax을 이용한 수식 입력 오랜만에 티스토리로 컴백을 해서 블로그를 시작했다. 블로그 이름을 슬기로운통계생활로 지었고, 동일한 이름의 통계 유튜브 채널의 서브 블로그로 운영을 생각하고 있다. MathJax을 이용한 수식입력 티스토리 기본 입력기가 업데이트 되었으나, 수식을 많이 사용하는 나에게 수식입력이 기본모드에서 인식이 안되어 짜증이났다. 내가 원하는 수식 입력에는 두 가지 모드가 있는데, 본문 입력 \$ 사인을 이용하여 \$x=y\$ 식으로 입력이 되어야 한다. 디스플레이 입력: 문장과 독립적으로 가운데 정렬로서 입력하는 방법인데, \$\$ 사인을 사용하여 묶어줌으로서 사용하고 싶었다. 예를 들어 \$\$x=y\$\$ 식으로 입력이 되어야 한다. 여기저기 찾아보다가 MathJax Config 설정에 대하여 써놓은 페이지를 발.. 2020. 7. 16.
R과 파이토치, 텐서의 변환 (Bridge) 시작부터 이름이 거창하다. 그렇다. 필자가 썸네일로 밀고있는, 그리고 이 시리즈의 존재 이유를 설명하는 포스트다. 태생이 R로 시작해서 그런지 R에 대한 미련을 버릴 수가 없는것 같다. 또한 문서를 작성할 때, R에 대한 의존도가 상당히 높아서 포기가 안됨. PytoRch = Pytorch + R R에서는 Python과의 연동을 위하여 reticulate 이라는 패키지를 제공한다. 이 reticulate을 사용하여 파이썬에서 정의되어 있는 변수들을 R로 불러올 수 있는데, 파이토치에서는 넘파이와의 브릿지 (bridge)를 제공하고 있으니, 필자가 생각하는 R의 강점인 문서작성과 데이터 시각화는 R에서, 딥러닝에서 요구하는 GPU를 이용한 계산은 파이썬에서 하려는 나름 야심찬 계획이 있다. 파이토치 넘파이.. 2020. 7. 15.
파이토치, 텐서 (Tensor) 의 연산 지난 시간, 우리는 텐서가 행렬 혹은 Array의 다른 이름이라는 것을 배웠다. 오늘은 행렬들의 연산에 대하여 다루어보자. 파이토치 (Pytorch) 불러오기 및 행렬 선언 import torch 이번 튜토리얼에서 사용할 텐서들을 만들어보자. torch.manual_seed(1234) ## A = torch.arange(1.0, 13.0).view(4, 3) B = torch.rand(4, 3) C = torch.rand(3, 4) A; B; C ## tensor([[ 1., 2., 3.], ## [ 4., 5., 6.], ## [ 7., 8., 9.], ## [10., 11., 12.]]) ## tensor([[0.0290, 0.4019, 0.2598], ## [0.3666, 0.0583, 0.7006.. 2020. 7. 15.
파이토치, 텐서 (Tensor) 만들기 오늘부터 파이토치를 한 번 파보도록 하겠다. 파이토치 (Pytorch) 불러오기 파이토치의 모토은 GPU 파워가 발달한 지금 기존에 사용되던 넘파이 (NumPy) 를 대체하기 위해서 태어났다. 파이토치 역시 결국 넘파이나 판다스 (Pandas) 같은 패키지 임으로 다음의 명령어를 사용하여 불러온다. import torch 텐서 선언 텐서가 무엇이냐, 겁나 대단한 것처럼 보이나 결국 Array임. 우리가 많이 쓰는 행렬도 Array에 속하지만, 보통 Array라는 용어는 3차원 이상의 행렬을 암시한다. 이름부터 멋있는 파이토치인데 다른 용어들이 Array같이 다른 패키지에서 사용되는 것들이랑 동일하면 격이 떨어지므로, 텐서 (tensor) 라고 붙였다. 파이토치 설명서에 쓰면 텐서는 넘파이의 Array와 .. 2020. 7. 15.
리눅스 민트 (Linux Mint) 명령어 모음집 정말 맨날맨날 까먹는다. 머릿속이 지우개가 들어있는 듯하다. 비디오카드 확인 명령어 nvidia-smi 터미널에 (base) 환경 만들기 source ~/.bashrc 혹은 conda activate base base 환경 빠져나가기 conda deactivate base Path 저장 특정 장소 PATH 변수에 저장할 경우 다음과 같은 형식을 따른다. export PATH=$PATH:path/to/the/file 예를 들어, PATH에 /usr/local/cuda-10.2/를 저장할 경우 export PATH=$PATH:/usr/local/cuda-10.2/ 이러한 명령어는 다른 변수들에도 적용가능. 다음은 LD_LIBRARY_PATH에 /usr/local/cuda-10.2/lib64를 저장하는 예시... 2020. 7. 14.
티스토리 블로그 R 코드 하이라이팅 업데이트 여전히 티스토리는 R 코드를 하이라이트 해주지 않았다. 흠. R에 인기는 이번 년도 8위라는데 말이지? Prism을 통한 하이라이팅 예전 필자는 티스토리에서 R코드 하이라이팅을 Prism과 highlight을 혼합해서 적용시켜놨는데, 이번에 바뀐 것을 들여보다가 Prism만 적용해도 깔끔하게 나오는 것을 확인했다. 따라서 현재 필자의 티스토리 블로그에 적용 중인 하이라이팅은 prism.js와 prism.css를 사용하고 있다. 따라서와 사이에 css파일을 불러오는 다음의 스크립트 파일을 넣어주고, 태그 시작하고 나서 prism.js파일을 넣어주는 다음의 스크립트를 넣어준다. 이와 같이 설정을 마치고, 관리 섹션의 스킨 편집을 들어가서, html편집 > ‘파일 업로드’ > 아래부분의 추가를 누를 후 다음의.. 2020. 7. 14.
반응형