일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 좌표거리
- Python
- 패치분할
- osmnx
- 도커 레이어
- 파이썬
- 그리드분할
- Set
- GIS
- 지하철역좌표
- 3d데이터
- 알고리즘
- GNN
- STL
- MESH
- 이미지빌드
- 폴더조사
- GCN
- 데이터입수
- 3d
- docker
- pyvista
- geopandas
- 도커
- python최단거리
- 컨테이너
- graph
- geojson
- 귀여운고래
- 동명이인찾기
- Today
- Total
목록분류 전체보기 (86)
이것저것 기록
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dlHjnP/btqKNnErcmV/8v2lEuWz2gR3ht6FYizpJ1/img.png)
PyTorch의 Dataset과 DataLoader를 이용하면 학습을 위한 방대한 데이터를 미니배치 단위로 처리할 수 있고, 데이터를 무작위로 섞음으로써 학습의 효율성을 향상시킬 수 있다. 또한 데이터를 여러개의 GPU를 사용해 병렬처리로 학습할 수도 있다. 코드가 매우 간단해지고, 사용법만 익히면 학습을 편하게 도와주는 편리한 함수다. 사실 데이터셋의 크기가 그렇게 크지 않으면 굳이 사용하지 않아도 되지만, 데이터셋의 크기가 매우 큰 경우엔 모든 데이터를 한 번에 넣어서 처리하는 방식을 적용하기엔 무리가 있다. 그래서 Batch 라는 개념으로 (묶음) 한 번에 한 묶음씩 처리하는 방식을 사용하게 된다. 정리하면, 전체 데이터셋을 batch로 묶어서 iteration의 수 만큼 실행하는 것이다. 이것을 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/0EjzJ/btqKOCaaBuR/Dw3OAwNwoj1d4i69BYapqK/img.png)
PyTorch로 신경망 모델을 설계할 때, 크게 다음과 같은 세 가지 스텝을 따르면 된다. Design your model using class with Variables Construct loss and optim Train cycle (forward, backward, update) 여기서 두 번째 순서인 로스와 옵티마이저를 설정하는 방법을 포스팅 해보려고 한다. 1. Opimizer 설정 옵티마이저는 PyTorch의 optim 패키지를 사용하여 간단하게 정의할 수 있다. optim 패키지는 다양한 최적화 알고리즘을 초합하고 있으니까 참고하면 된다. pytorch.org/docs/stable/optim.html torch.optim — PyTorch 1.6.0 documentation torch.op..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bySNc6/btqKLEmaOoa/nIR69JcKMpNObAxx9rwB81/img.png)
PyTorch로 신경망 모델을 설계할 때, 크게 다음과 같은 세 가지 스텝을 따르면 된다. Design your model using class with Variables Construct loss and optim Train cycle (forward, backward, update) 이 포스팅에선 첫번째 단계인 클래스와 변수를 정의하는 방법을 다루려고 한다. PyTorch로 신경망을 설계할 때크게 두 가지 방법이 있다. 사용자 정의 nn 모듈 nn.Module을 상속한 클래스 이용 어느 방식으로 신경망을 설계해도 상관 없지만, 복잡한 신경망을 직접 설계할 때는 내 마음대로 정의하는 방식의 nn모듈을 더 많이 사용한다고 한다. (참고: tutorials.pytorch.kr/beginner/pytorch..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cFJbSc/btqKROAFHZM/KkVkLllQLz3FFl7UpP5Zt0/img.png)
PyTorch에는 Autograd라는 기특한 패키지가 있다. 깃헙에서 딥러닝 코드들을 보다보면 .requires_grad=True 라는 코드를 엄청 자주 보게 되는데, 이게 바로 Autograd라는 패키지와 연관이 있는 코드이다. 이 패키지는 Tensor의 모든 연산에 대해 자동 미분을 제공한다. torch.Tensor는 패키지에서 가장 중심이 되는 클래스이다. 텐서의 속성 중 하나인 .requires_grad=True로 세팅하면 텐서의 모든 연산에 대해 추적을 시작한다. 계산 작업이 모두 수행되면 .backward()를 호출해서 모든 gradients를 자동으로 계산할 수 있다. gradients들은 .grad 속성에 누적되어 저장된다. Autograd 패키지의 동작 원리를 자세히 이해하고 싶으면 다음..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nbstR/btqKxREWIv3/5Vrbo9pVqWlShGWMCDBHT0/img.jpg)
1. 브로드캐스팅 두 행렬 A, B가 있을 때, 원래는 두 행렬의 크기가 같아야지만 덧셈/뺄셈을 수행할 수가 있다. 그리고 두 행렬의 곱셈을 할 때는 (A x B) A의 마지막 차원과 B의 마지막 차원이 일치해야한다. 이를 위해 파이토치에서는 브로드캐스팅 이라는 기능을 제공한다. 브로드캐스팅 기능은 서로 크기가 다른 행렬들이 사칙연산을 수행할 수 있도록 자동으로 크기를 맞춰서 연산을 수행하게 해준다. import numpy as np import torch # Case 1 : 같은 크기의 행렬 m1 = torch.FloatTensor([[3, 3]]) m2 = torch.FloatTensor([[2, 2]]) print(f'shape: m1 = {m1.shape}, m2 = {m2.shape}') m3 ..