전체 글 (611) 썸네일형 리스트형 [PyTorch] CNN 설계 6. train, validation, test 함수 정의 1. Package load 2. 데이터셋 다운로드 및 훈련, 검증, 테스트 데이터셋 구성 3. 하이퍼파라미터 세팅 4. Dataset 및 DataLoader 할당 5. 네트워크 설계 6. train, validation, test 함수 정의 7. 모델 저장 함수 정의 8. 모델 생성 및 Loss function, Optimizer 정의 9. Training 10. 저장된 모델 불러오기 및 test 11. Transfer Learning import torch.optim as optim # Optimizer를 생성합니다. optimizer = optim.SGD(net.parameters(), lr=0.01) # 학습 과정(training loop)은 다음과 같습니다: optimizer.zero_grad(.. [PyTorch] CNN 설계 5. 네트워크 설계 1. Package load 2. 데이터셋 다운로드 및 훈련, 검증, 테스트 데이터셋 구성 3. 하이퍼파라미터 세팅 4. Dataset 및 DataLoader 할당 5. 네트워크 설계 6. train, validation, test 함수 정의 7. 모델 저장 함수 정의 8. 모델 생성 및 Loss function, Optimizer 정의 9. Training 10. 저장된 모델 불러오기 및 test 11. Transfer Learning 모델을 만드는 클래스를 정의한다. 이때 nn.Module을 상속한다. init으로 sequential layer를 만들어준다. init으로 만든 layer를 forward에서 바로 이어서 진행하게 된다. 5. 네트워크 설계 class SimpleCNN(nn.Module).. [PyTorch] CNN 설계 4. Dataset 및 DataLoader 할당 1. Package load 2. 데이터셋 다운로드 및 훈련, 검증, 테스트 데이터셋 구성 3. 하이퍼파라미터 세팅 4. Dataset 및 DataLoader 할당 5. 네트워크 설계 6. train, validation, test 함수 정의 7. 모델 저장 함수 정의 8. 모델 생성 및 Loss function, Optimizer 정의 9. Training 10. 저장된 모델 불러오기 및 test 11. Transfer Learning 전체 흐름 DataLoader에서 기존에 MNIST와 같이 주어진 데이터셋이 아닌 경우 내가 class를 만들어서 사용해야 한다. 이렇게 만들어진 class를 이용해 DataLoader의 첫 번째 인자인 dataset에 해당 class를 넣어주는 것이다. Dataset .. [PyTorch] torch.optim의 인자 model.parameters() optimizer 클래스 초기화 제일 중요한 매개변수는 신경망의 파라메터이다. Variable 타입의 파라메터들을 iterable 오브젝트로 넣어줘야한다. 그 외에는 각 optimizer 타입에 따라 learning rate, weight decay 등을 넣어주면 된다. parameters() 메소드는 모듈의 파라메터들을 iterator로 반환한다고 적혀있다. 신경망 구조를 구현할때 보통 아래와 같이 하위 모듈을 추가하는식으로 구현을 하기 때문에, 파라메터를 직접 추가할 일이 거의 없었다. class MyModule(torch.nn.Module): def __init__(self): super(MyModule, self).__init__() self.A = torch.nn.Linear(100, 200) .. [PyTorch] torch.nn 제공함수 torch.nn Containers Convolution Layers Pooling layers Padding Layers Non-linear Activations (weighted sum, nonlinearity) Non-linear Activations (other) Normalization Layers Recurrent Layers Transformer Layers Linear Layers Dropout Layers Sparse Layers Distance Functions Loss Functions Vision Layers Shuffle Layers DataParallel Layers (multi-GPU, distributed) Utilities Quantized Functions Lazy Mod.. [PyTorch] CNN 설계 순서 1 - 3 1. Package load 2. 데이터셋 다운로드 및 훈련, 검증, 테스트 데이터셋 구성 3. 하이퍼파라미터 세팅 4. Dataset 및 DataLoader 할당 5. 네트워크 설계 6. train, validation, test 함수 정의 7. 모델 저장 함수 정의 8. 모델 생성 및 Loss function, Optimizer 정의 9. Training 10. 저장된 모델 불러오기 및 test 11. Transfer Learning 1. Package load 2. 데이터셋 다운로드 및 훈련, 검증, 테스트 데이터셋 구성 3. 하이퍼파라미터 세팅 [BOJ] 3933 라그랑주의 네 제곱수 정리 3933번: 라그랑주의 네 제곱수 정리 입력은 최대 255줄이다. 각 줄에는 215보다 작은 양의 정수가 하나씩 주어진다. 마지막 줄에는 0이 하나 있고, 입력 데이터가 아니다. www.acmicpc.net 이 문제 전에 풀었던 문제와 거의 같은 문제인데 까맣게 잊고 있었다. 힘들게 이해하고 기억에서 지워버리다니... 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net 심지어 성공한 문제;; brute force 백준 3933 라그랑주의 네 제곱수 정리 https://www.. [BOJ] 1058 친구 플로이드-와샬 24. 플로이드 와샬(Floyd Warshall) 알고리즘 지난 시간에는 다익스트라(Dijkstra) 알고리즘에 대해 학습했습니다. 다익스트라 알고리즘은 하나의 정점... blog.naver.com 1058번: 친구 지민이는 세계에서 가장 유명한 사람이 누구인지 궁금해졌다. 가장 유명한 사람을 구하는 방법은 각 사람의 2-친구를 구하면 된다. 어떤 사람 A가 또다른 사람 B의 2-친구가 되기 위해선, 두 사람 www.acmicpc.net [PyTorch] torch.nn 과 torch.nn.functional naming 에서도 알 수 있듯이 torch.nn.functional은 함수고 torch.nn은 클래스로 정의되어 있다. 그렇기 때문에 torch.nn으로 구현한 클래스의 경우에는 attribute를 활용해 state를 저장하고 활용할 수 있고 torch.nn.functional로 구현한 함수의 경우에는 인스턴스화 시킬 필요 없이 사용이 가능하다. torch.nn으로 구현한 클래스의 경우에는 attribute를 활용해 state를 저장하고 활용할 수 있고 torch.nn.functional로 구현한 함수의 경우에는 인스턴스화 시킬 필요 없이 사용이 가능하다. torch.nn은 클래스 객체로 정의하고 이후에 매개변수로 해당 계산을 진행하는 방식 torch.nn.functional은 함수로 그 자리에서 바로.. [PyTorch] nn.MaxPool2d(), nn.BatchNorm2d() [PyTorch] nn.ReLU(), F.relu() nn.ReLU 와 F.relu는 ReLU를 객체로 선언해서 사용하느냐, 아니면 함수로 사용하느냐의 차이입니다. ReLU는 학습이 필요없기 때문에 개별적인 객체로 선언할 필요없이 함수를 사용해 적용할 수 있습니다. 이러한 내용은 이곳에서도 자세히 설명하고 있으니 참고하시기 바랍니다. class SimpleCNN(nn.Module): def __init__(self): super().__init__() # self.conv 구현 self.conv = nn.Sequential( ## 코드 시작 ## nn.Conv2d(3,32,kernel_size = 3) # conv_1 해당하는 층 nn.BatchNorm2d(32), # batch_norm_1 해당하는 층 nn.ReLU(), # ReLU_1 해당하는 층 nn.. 지도에서 DFS, BFS DFS 지도에서 DFS는 한 가지 방법으로 갈 때까지 가보는 방식이라고 생각한다. - 백트랙킹 방식이라 생각하고 visit 표시를 해줘야 한다. 중복 방지를 위해서 체크하는 방법은 자주 활용되므로 잘 익혀둘 수 있도록 한다. 그리고 만약 n 의 크기가 10,000이상의 값이라면 어떻게 해결해야할지 고민해보기 바란다. 이 방법들은 모두 시간이 너무 많이 걸리기 때문에 값이 커질 경우 제한된 시간 이내에 해를 구할 수 없다. BFS BFS는 한 칸에 대한 데이터가 중요하고 그것을 저장하는 것이다. 최단거리 문제 [ML] Sigmoid, ReLu [ML] Gradient Descent3 Gradient descent : 에러를 미분하여 weight를 업데이트 하는 방법. Back-propagation : Hidden node에서 에러를 미분하여 weight를 업데이트 하는 방법. Feedforward 그럼 본격적으로 input을 네트워크에 입력하여 출력을 얻는 과정을 살펴보겠습니다. input은 벡터로, weight는 행렬이므로 node의 출력은 행렬곱에 의해 구해집니다. 이렇게 구해진 node의 출력은 Activation 함수에 들어갑니다. 1-07. Multi Layer Perceptron 총정리 이제 1단원을 마무리하며 최종 정리 및 요약을 해보겠습니다. 이 포스트에 MLP(Multi Layer Perceptrons)의 내용을 모두 담았습니다. MLP를 훈련하기 위해서는 다음과 같.. [PyTorch] Intro, 외울 부분 모델을 학습시키기 전에, 어떤 loss를 쓸 것인지 learning rate은 몇으로 할 것인지 optimizer는 무엇으로 할 것인지 학습 횟수는 몇 번으로 할 것인지 PyTorch로 딥러닝하기 — Intro 거창하게 “딥러닝하기”라는 제목을 달았지만, 알다시피 우리에게 딥러닝을 한다는 것은 딥러닝 framework를 잘 사용하기와 같은 의미입니다. medium.com 파이토치로 시작하는 딥러닝 기초 부스트코스 무료 강의 www.boostcourse.org [ML] Softmax regression, Categorical Cross-Entropy Loss, Multi-class Classification 앞서 로지스틱 회귀를 통해 2개의 선택지 중에서 1개를 고르는 이진 분류(Binary Classification)를 풀어봤습니다. 이번 챕터에서는 3개 이상의 선택지 중에서 1개를 고르는 다중 클래스 분류 문제를 위한 소프트맥스 회귀(Softmax Regression)에 대해서 배웁니다. 다중 클래스 분류(Multi-class Classification) 이진 분류가 두 개의 선택지 중 하나를 고르는 문제였다면, 세 개 이상의 선택지 중 하나를 고르는 문제를 다중 클래스 분류라고 합니다. 아래의 문제는 꽃받침 길이, 꽃받침 넓이, 꽃잎 길이, 꽃잎 넓이로부터 setosa, versicolor, virginica라는 3개의 품종 중 어떤 품종인지를 예측하는 문제로 전형적인 다중 클래스 분류 문제입니다. 위.. [ML] Epoch, iteration, batch size 머신 러닝 - epoch, batch size, iteration의 의미 - 출처 이번 포스팅의 주제는 텐서플로우나 케라스 등을 사용해서 모델을 만들어 보았으면 다들 아실 용어... blog.naver.com [PyTorch] Dataset and DataLoader 사용법 Mini-batch 적용하기 위해 사용 [PyTorch] Multivariable Linear Regression 1. 데이터 정의 2. w 초기화 3. optimzer 정의 4. H 계산 5. Cost 계산(MSE) 6. Gradient Descent 파이토치로 시작하는 딥러닝 기초 부스트코스 무료 강의 www.boostcourse.org [PyTorch] Linear Regression 작성하기 [PyTorch] Tensor와 NumPy 텐서 조작(Tensor Manipulation)에 대해 알아본다. 핵심키워드 텐서(Tensor) 넘파이(NumPy) 텐서 조작(Tensor Manipulation) 1. Tensor는 배열의 집합이다. 2. 차원의 수는 Rank와 같은말이다. 3. 배열의 차원에따라 불리는 이름이 달라진다. PyTorch Tensor torch.tensor로 tensor를 만들어낸후 torch.** 의 함수로 각종 계산을 할 수 있다. TORCH.TENSOR.ADD Tensor.add(other, *, alpha=1) → Tensor Add a scalar or tensor to self tensor. If both alpha and other are specified, each element of other is sca.. [PyTorch] package 1. Package load먼저, 필요한 패키지들을 로드합니다. 각각의 패키지들의 대략적인 사용목적은 다음과 같습니다. torch: PyTorch 패키지를 불러옵니다. torchvision: PyTorch 에서 이미지 데이터 로드와 관련된 여러가지 편리한 함수들을 제공합니다. matplotlib.pyplot: 데이터 시각화를 위해 사용합니다. numpy: Scientific computing과 관련된 여러 편리한 기능들을 제공해주는 라이브러리입니다 [Docker] 도커 파일 복사 (로컬 <-> 컨테이너) 1. 컨테이너 안에 있는 파일을 로컬로 복사 “tmp-container”라는 컨테이너 내부에 “/root/data/test.md” 라는 파일이 있다고 하자. 이 파일을 로컬(호스트)의 “~/data/” 위치로 가져오려면 다음과 같이 하면 된다. $ docker cp tmp_container:/root/data/test.md ~/data/ cp 명령어 뒤에 컨테이너 이름과 컨테이너 내부 데이터 경로를 “:” 로 구분해 적어준다. 그 뒤에는 데이터를 복사해올 로컬 경로를 적어주면 된다. 2. 로컬의 파일을 컨테이너 안으로 복사 이번엔 로컬의 “~/data/test.md” 라는 파일을 컨테이너의 “/root/data/”로 복사해보자. 그냥 명령 인자의 순서를 반대로 해주면 된다. $ docker cp ~/da.. [Docker] Docker User Guide 도커를 start -> attach로 키면 도커 서버 환경이 나온다. sh를 실행하면 jupyter가 켜진다. 로컬의 파일을 옮기려면 로컬에서 cp를 작성해야 한다. 1. 도커 이미지 받아오기 docker run -it -v [압축푼 폴더 경로 입력]:/workspace contest:latest /bin/bash 컨테이너 실행하기 도커를 실행하는 명령어는 다음과 같습니다. docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...] 다음은 자주 사용하는 옵션들입니다. 옵션설명 -d detached mode 흔히 말하는 백그라운드 모드 -p 호스트와 컨테이너의 포트를 연결 (포워딩) -v 호스트와 컨테이너의 디렉토리를 연결 (마운트) -e 컨테이너 내에서 사.. [BOJ] 1535 안녕 #include #define MAXL 20 #define MAXJ 100 using namespace std; int DP[MAXL+1][MAXJ+1], L[MAXL+1], J[MAXJ+1]; int N; void input() { cin >> N ; for (int i = 1; i > L[i]; for (int i = 1; i > J[i]; } void solve() { for (int i = 1; i = L[i]) DP[i][j] = max(DP[i - 1][j - L[i]] + J[i], DP[i - 1][j]); else DP[i][j] = DP[i - 1][j]; } } int res = 0; for (int i = 1; i < 100; i++) res = max(DP[N][i], res); .. 완전탐색 - 2단계 문제집: 완전 탐색 (normal) (soo7652) www.acmicpc.net 1051 숫자 정사각형 37.506% 1057 토너먼트 55.774% 1198 삼각형으로 자르기 51.807% 1487 물건 팔기 29.775% 1639 행운의 티켓 50.498% 1895 필터 81.250% 2548 대표 자연수 49.509% 2615 오목 21.368% 2992 크면서 작은 수 47.778% 3024 마라톤 틱택토 32.280% 3182 한동이는 공부가 하기 싫어! 71.429% 4375 1 36.962% 9873 Cow Baseball 64.894% 9996 한국이 그리울 땐 서버에 접속하지 27.958% 10211 Maximum Subarray 42.152% 10974 모든 순열 60.007% 115.. [ML] Transfer learning1 한 명의 개발자가 있습니다. 이 개발자는 개, 고양이, 말, 소, 양을 구별할 수 있는 이미지 분류용 CNN 모델을 만들어야합니다. 보스가 시켰으니까요. 그래서 이 개발자는 수많은 개, 고양이, 말, 소, 양의 이미지를 인터넷상에서 많이 찾아왔습니다. 이 이미지들을 가지고 CNN 모델을 훈련시켰습니다. 수많은 테스트를 통해 최적의 모델 가중치(weights)를 찾아냈습니다. 즉, CNN 모델 내의 많은 가중치들이 개, 고양이, 말, 소, 양을 분류하기에 적합하도록 조정이 된 것이죠. 그런데 갑자기 보스가 개, 고양이, 말, 소, 양은 분류할 필요가 없어졌다고 합니다. 그것 대신 사슴, 코끼리, 토끼, 염소, 호랑이를 분류할 수 있는 모델을 만들어달라고 합니다. 최대한 빨리! 이 개발자는 너무나 짜증이 났.. [ML] pre-training , fine-tuning, Bottleneck feature Pre Training 이란? 선행학습(pre-training) 사전훈련(pre-training) 전처리과정(pre-training) 이라고도 하는데, 이는 Multi Layered Perceptron (MLP)에서 Weight와 Bias를 잘 초기화 시키는 방법이다. 이러한 Pre-training을 통해서 효과적으로 layer를 쌓아서 여러개의 hidden layer도 효율적으로 훈련 할 수 있다. 또한, 이는 unsupervised learning이 가능하기 때문에(물론 이러한 가중치와 편향 초기화가 끝나면 레이블 된 데이터로 supervised learning 해야 한다 -> fine tuning) 레이블 되지 않은 큰 데이터를 넣어 훈련 시킬 수 있다는 점을 장점으로 들 수 있다. 또한 Drop-.. 완전탐색 - 1단계 문제집: 완전 탐색 (easy) (soo7652) www.acmicpc.net 4690 완전 세제곱 40.853% 9094 수학적 호기심 69.964% 20410 추첨상 사수 대작전! (Easy) 68.148% 1813 마지막 한마디 36.826% 2231 분해합 47.515% 2309 일곱 난쟁이 43.555% 2386 도비의 영어 공부 60.497% 2798 블랙잭 44.414% 2858 기숙사 바닥 55.560% 2966 찍기 50.483% 3040 백설 공주와 일곱 난쟁이 70.973% 10448 유레카 이론 59.016% 13410 거꾸로 구구단 59.473% 14697 방 배정하기 43.745% 19532 수학은 비대면강의입니다 47.391% 1145 적어도 대부분의 배수 58.621% 216.. Deque 덱은 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조의 한 형태이다. 두 개의 포인터를 사용하여, 양쪽에서 삭제와 삽입을 발생 시킬 수 있다. 큐와 스택을 합친 형태로 생각할 수 있다. 이전 1 ··· 4 5 6 7 8 9 10 ··· 21 다음 목록 더보기