딥러닝
-
GPU 연산 잘 사용하기딥러닝/딥러닝 etc 2021. 4. 2. 17:45
이전에 어디선가 포스팅한 글을 읽었는데 (아마 velog일 것이다) 내가 생각하는 최적화와 딥러닝에서 돌아가는 최적화의 갭이 매우 크다라는 것을 느꼈다. 딥러닝하는 사람들이라면 모두 "GPU는 행렬 연산에 최적화되어 있다" 라는 말을 많이 봤을 것이다. 딥러닝에서 사용하는 연산은 행렬에 최적화되어 있지만 프로그래밍으로 접하는 사람들은 단순히 반복문을 적게 쓰고 Big-O 을 줄이는 방식으로 많이들 생각하겠지만 GPU의 최적화는 무조건 행렬이다. import torch import random import time RANGE = 10000 device = 'cuda' data = torch.Tensor([random.random() for _ in range(RANGE)]).to(device) mul_to..
-
[tensorflow] dacon 운동 동작 분류 AI 경진대회딥러닝/tensorflow 2021. 4. 2. 15:54
dacon에서 주최한 월간 데이콘 11 인 운동 동작 분류 AI 경진대회에 참가하였다. (dacon.io/competitions/official/235689/overview/description/) 결과적으로 public 22등 / private 27 등으로 아쉽지만 동메달을 땄다. 한동안 미루던 코드를 정리해서 올리려고 한다. 일단 사용한 환경은 jupyterlab이고 실험 관리는 neptune.ai 를 사용하였다. neptune.ai 가 매우 편하니 읽어보시는 분은 neptune.ai 사용해보시는 걸 추천 (mlflow도 있지만 이건 직접 설치, 관리해야하기 때문에 대회에서는 약간 비추) 코드 아래 코드들은 모두 하나의 .py 안에 들어있으니 필요하다면 각 블럭을 모두 복붙해서 하나의 파일에 순서대로..
-
[tensorflow/pytorch] random seed 설정딥러닝 2021. 3. 15. 15:53
프로젝트 끝나고도 너무 바빴고 많은 것들을 해서 한동안은 정리하는 시간을 가지려고 한다. 그리고 velog로 옮길까 했지만 여기가 더 편해서 velog에 작성한 것을 여기로 옮긴다. DL 을 설계하고 재현성에서 문제가 생기는 경우가 많다. 대회에서는 다시 학습했을 때, 동일한 성능이 나와야 스코어를 인정해주는데 해당 부분에서 탈락하는 팀을 간혹 봤다. pytorch의 경우 [해당 링크](https://hoya012.github.io/blog/reproducible_pytorch/)에서 보고 따라하면 된다. 짧게 정리하자면 아래와 같다. # pytorch random seed import torch import numpy as np import random random_seed = 42 torch.manu..
-
[기초 3] data 가공딥러닝/tensorflow 2020. 6. 22. 23:31
근 2달 만에 블로그에 글을 쓸 여유가 생겼다. 기존에는 data 가공 부분에 generator를 서술하려고 했지만 tensorflow 2의 dataset과 비교해본 결과, 이 것이 좀 더 자원을 효율적으로 쓰는 이유로 dataset를 뼈대로 삼아 서술하려 한다. 튜토리얼은 tensorflow 사이트에 공식 문서화되어 있어서 이 것만 따라해도 쉽게 할 수 있다. www.tensorflow.org/guide/data_performance?hl=ko tf.data API로 성능 향상하기 | TensorFlow Core Note: 이 문서는 텐서플로 커뮤니티에서 번역했습니다. 커뮤니티 번역 활동의 특성상 정확한 번역과 최신 내용을 반영하기 위해 노력함에도 불구하고 공식 영문 문서의 내용과 일치하지 않을 수 w..
-
[기초 2] tensorflow 2 keras 모델 인스턴스 화딥러닝/tensorflow 2020. 5. 2. 16:59
이전에 Sequential model과 custom model로 구성하는 방법을 작성하였으니 이제 모델을 똻!하고 찍어내서 사용할 인스턴스 화를 작성한다. 이전에 작성한 모델의 정의는 생략하고 작성한다 from tensorflow.keras.optimizers import Adam from tensorflow.keras.losses import BinaryCrossentropy def makeModel(): ''' ~~~ 모델 정의 ~~~ ''' return model if __name__ == "__main__": my_model = makeModel() my_model.complile(loss='binary_crossentropy', optimizer='adam') # or _optimizer = A..
-
[기초 1] tensorflow 2 keras 모델 정의딥러닝/tensorflow 2020. 4. 22. 23:53
keras 모델 정의는 2가지로 나뉘어져 있다. 첫 번째는 Sequential model 두 번째는 tensorflow.keras.Model 을 상속받은 custom model 그럼 Dense Layer 로만 구성된 모델로 예제를 구성하겠다. 1. Sequential model import tensorflow as tf from tensorflow.keras import layers # make sequential model instance def makeModel(): sequential_model = tf.keras.Sequential() # hidden layer sequential_model.add(layers.Dense(64, activation='relu')) sequential_model.a..
-
[기초 0] tensorflow 2 keras 기초딥러닝/tensorflow 2020. 4. 22. 23:22
생각보다 많은 사람들이 딥러닝과 컴퓨터 사이언스 사이에서 허우적거리는 사람들이 많은 것으로 보여서 하나씩 정리하면서 쓰려고 한다. 일단 기초적으로 많은 범위를 차지하는 건 모델 코드의 구조라고 생각한다. 그래서 눈에 익을 정도로 비슷한 코드들을 나열해나가면서 정리를 시작하겠다. 일단 tensorflow 2의 keras 를 기준으로 설명하려는 이유는 keras.Model은 pytorch의 nn.Module로 만든 Custom Model과 유사하고 코드를 너무 깊게 안들어가도 되는 장점이 있어서이다. 딥러닝 코드를 여러 번 짜면서 느낀건 동작하는 순서는 거의 유사하다는 것이다. 1. 모델의 정의 2. 모델 인스턴스 화 3. 데이터 가공 4. train 5. test 데이터 가공은 초반 어디에 들어가든 별도의..
-
[tensorflow 2] HardNet 모델딥러닝/tensorflow 2020. 4. 22. 13:27
해당 코드는 pytorch 로 짜여진 hardnet 모델을 tensorflow 2의 Model로 그대로 넣은 코드이다. 기존 pytorch 코드는 여기 https://github.com/PingoLH/FCHarDNet/blob/master/ptsemseg/models/hardnet.py PingoLH/FCHarDNet Fully Convolutional HarDNet for Segmentation in Pytorch - PingoLH/FCHarDNet github.com 테스트 해봤을 때 속도가 pytorch로 학습하는 속도보다 훠얼씬 떨어지지만 일단은 돌아가니 올리도록 한다. (1 epoch 당 pytorch: 20~30분 / tensorflow: 9~10시간) import tensorflow as t..