본문 바로가기

전체

(155)
[PyTorch] 리눅스환경에서 특정 GPU만 이용해 Multi GPU로 학습하기 연구실에서 다같이 연구를 하다보니 같은 서버에 GPU를 나눠서 사용해야 한다. 그럴 때 어떻게 나눠쓸 수 있을까? CUDA_VISIBLE_DEVICES를 이용해서 내가 현재 볼 수 있는 GPU를 한정시키는 방법이 있다. 그래서 특정 GPU들만 이용해서 Multi GPU로 모델을 학습할 수 있다. 예를 들면, 만약 2,3번만 보이게 설정했다면 걔네를 GPU 0번과 1번으로 인식하여 두 GPU만을 이용해서 학습하게 된다. 1) 터미널 창에서 GPU를 지정하여 python파일을 실행시킨다. model = torch.nn.DataParallel(model) model.cuda() CUDA_VISIBLE_DEVICES = 2,3 python train.py #터미널창 2) 코드내부에서 GPU를 지정해서 실행시킨다..
[PyTorch] 시계열 데이터를 위한 다양한 Normalization기법 (BatchNorm1d, GroupNorm 사용법) Normalization Neural network의 깊이가 점점 깊어질수록 학습이 안정적으로 되지 않는 문제가 발생한다. 이런 학습의 불안정화의 원인으로 'internal covariance shift'가 언급되었다. 이는 딥러닝에서 각 layer를 지나면서, inner representation의 distribution이 달라지는 현상을 말한다. 그러므로 layer를 지날 때 마다 변하는 데이터 분포의 scale을 맞춰주는 과정을 통해 안정된 학습을 보장할 수 있는데 이러한 방법을 Normalization이라고 한다. 기본적인 정규화로 표준정규분포를 맞춰주는 방법을 생각할 수 있을 것이다. 데이터의 범위를 정한다. (이 범위에 따라 batch normalization/ layer normalizati..
[백준/C++] 백준 1759번 : 암호만들기 #include #include #include using namespace std; int visit[15][15]; int L, C; char key[15]; //char candidate[15]; void dfs(int start, string str, int vowel, int consonant) { //재귀함수의 종료조건 if (str.size() == L) { if (vowel >= 1 && consonant >= 2) { cout L >> C; for (int i = 0; i > key[i]; } sort(key, key + C); dfs(0, "", 0, 0); return 0; }
[백준/C++] 백준 1931번: 회의실배정 pair data type에 sort함수를 적용하면 first를 기준으로 오름차순 sorting한다. 그러므로 끝나는 시간 순으로 정렬하고 싶으면 끝나는 시간을 first에 담으면 된다. #include #include using namespace std; int main() { int N;//회의의 개수! pair meeting_time[100000]; //freopen("Text2.txt", "r", stdin); cin >> N; //first에 끝나는 시간을 넣고 second에 시작하는 시간을 넣는다. for (int i = 0; i > meeting_time[i].second >> meeting_time[i].first; } sort(meeting_time, mee..
Window에서 Anaconda 가상환경 생성/활성화/삭제 아나콘다는 python기반 데이터분석을 위한 오픈소스를 모아놓은 것이다. 프로젝트마다 개별적으로 가상환경을 구축할 수 있어 프로젝트별 독립적인 라이브러리 관리가 가능하다. 가상환경에서 그 프로젝트에 필요한 라이브러리를 명령어 한 줄로 다운로드 할 수 있다. 이곳 에서 anaconda를 다운로드할 수 있고, anaconda prompt를 켜서 가상환경을 생성하고, 활성화, 삭제하는 방법을 알아보자. 가상환경 생성 맨 뒤에 anaconda를 붙여주면 spyder, jupyter notebook등을 같이 사용 가능하다. conda create -n 가상환경이름 python anaconda 가상환경 활성화 conda activate 가상환경이름 가상환경 패키지 확인 conda list 가상환경 정보 확인 con..
[백준/C++] 백준 1697번: 숨바꼭질 모든 경우의 수를 담고 찾는다. #define MIN 0 #define MAX 100000 #include #include using namespace std; /* 동생이 자신보다 작은 곳에 위치할 때 탐색할 필요가 없다. N > N >> K; int pos; int cnt=0; //몇 초인지 세어야 한다. queue q; //현 위치와 시간을 넣는다. q.push(make_pair(N, cnt)); ch..
[백준/C++] 백준 1652번: 누울 자리를 찾아라 #include #include using namespace std; int N; int map[101][101]; int main() { cin >> N; char k; for (int i = 0; i > k; if (k == '.') map[i][j] = 1; else map[i][j] = 0; } } int cnt_row = 0; int row = 0; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (map[i][j] == 1)cnt_row++; else cnt_row = 0; if (cnt_row == 2) row ++; } cnt_row = 0; ..
[백준/C++] 1260번: DFS와 BFS #include #include using namespace std; int N, M, V; int map[1001][1001]; int c[1001]; void dfs(int node) { cout > M >> V; int x=0; int y=0; for (int i = 0; i > x >> y; map[x][y] = map[y][x] = 1; } //dfs c[V] = 1; dfs(V); cout