AI

    [Openpose] 오픈소스 사용

    [Openpose] 오픈소스 사용

    Pose Estimation 의 한 분야이며, 사람의 마디를 정확히 예측한다.즉 사람의 스켈레톤을 뽑아내는 모델이다. 가장 알려진? openpose 모델은 COCO18, BODY-25, MPII 이다.세 개 모델은 뽑는 골격의 개수가 다르다. 각각 18개, 25개, 15개의 골격 포인트를 추출한다.    사실 나는 CP-VTON 진행 중 알게된 부분이다.위 모델에는 다음과 같은 학습 데이터를 필요로 한다.옷 이미지해당 옷을 입은 사람 이미지옷 이미지 segmentation 결과사람의 keypoint여기서 사람의 keypoint 가 사람의 골격 포인트에 해당한다. 즉 openpose를 사용해서 뽑아야 하는 정보이다.  내가 사용한 CP-VTON 오픈소스 코드에는 테스트용 파일이 들어있는데,keypoint ..

    [환경] CUDA 설치

    [환경] CUDA 설치

    빠른 학습을 위해선 GPU를 사용해야 한다. 서버를 (ex.코랩) 사용하면 더 편리하지만, 오늘은 로컬의 GPU를 사용하려 한다. 그렇기에 cuda 연결을 위해 환경 설정 방법을 작성한다. 1. Nvidia Driver 다운 https://www.nvidia.co.kr/Download/Find.aspx?lang=kr 2. Cuda Toolkit 다운 쿠다를 다운받을것이다. 이때 버전 확인을 잘해줘야 하는데, 이후 3. cudnn을 다운받을 때 Cuda 버전이 호환되도록 다운받는다. (터미널에서 nvidia-smi를 입력하면 cuda버전이 뜬다. 혹시 몰라 이 버전(11.4) 그대로 다운받으려 한다.) cudnn 링크 이제 버전 확인을 마쳤으니, 이 사이트에서 맞는 쿠다 버전을 선택하여 다운받는다. 자신의..

    [GAN] 다양한 GAN의 이론 설명

    [GAN] 다양한 GAN의 이론 설명

    DCGAN표준정규분포로 얻어진 벡터를 샘플링하고 컨볼루션 기반의 레이어를 통과. PGGAN고해상도 이미지를 위해 점진적인 학습 모델을 사용함.작은, 4x4 resolution g의 첫, d의 마지막 레이어를 가져와서 해당 사이즈를 먼저 학습함.activation map은4x4x1024 를 ex.1x1 conv(rgb 로 바꾸기 위함.)를 거쳐 4x4x3으로 변형 후 tanh를 거쳐 -1~1로 변형 후 0~255의 rgb로 매핑latent space 의 4x4x1024를 rgb형태로 바꿔줌으로써 이미지로 변형.descr의 인풋으로 넣어주기 위해선, 위에서 나온 레이어를 4x4x필요채널수 (가령 512)로 변형해주는 from RGB 작업을 거치도록 함.이렇게 한 뒤 더 큰 사이즈의 레이어를 추가하여 기존 레..

    [데이터 전처리] 학습 전 데이터 처리

    컬럼 중 특정 데이터 타입을 가진 컬럼 추출하기 list(data.select_dtypes(['object']).columns) #or data.columns.to_series().groupby(data.dtypes).groups 범주형 데이터를 인덱스로 라벨링 from sklearn.processing import LabelEncoder model = LabelEncoder() model.fit(data.column_str) data.column_int = model.transform(data.column_str) 테스트 데이터 분리 from sklearn import * X_train, y_train, X_test, y_test = model_selection.train_test_split(data_..

    [장비] 딥러닝 환경 구축하기 : CPU 환경

    [장비] 딥러닝 환경 구축하기 : CPU 환경

    코랩만 쓰다가 로컬 환경을 만들어야 하는 일이 생겼다. GPU가 없는 상황이라 작은 데이터 셋만 실험할 생각으로 CPU에 환경을 구축해본다. 1. 아나콘다 설치 버튼을 통해 간단히 다운로드한다. https://www.anaconda.com/products/individual Anaconda | Individual Edition Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 아나콘다 설치 시 Jupyter Notebook도 자동으로 같이 설치가 된다. 이 뒤로는, Anaconda P..

    NIC : 이미지 문장 번역

    NIC : 이미지 문장 번역

    Show and Tell: A Neural Image Caption Generator 논문 :https://arxiv.org/abs/1411.4555 영상 : https://www.youtube.com/watch?v=yfsFW-mfOEY&t=146s (동빈나) 1. 모델 설명 이미지를 글로 번역하여 출력하는 기술이다. CNN + RNN 형태로 이루어져 있다. 여기서 rnn은 LSTM을 사용한다. (2015 논문이며 그당시 최고의 번역모델.) [ CNN ] -> context vextor(고정크기) -> [ RNN ] 형태 히든 스테이트 : 이전에 처리한 정보와, 지금 들어온 입력을 sigmoid 한 것. 히든 스테이트도 입력과 같은 차원을 가진다 (?) 출력 : FC를 거쳐 스팸 여부 (binary)를 ..

    Attention : NEURAL MACHINE TRANSLATIONBY JOINTLY LEARNING TO ALIGN AND TRANSLATE

    Attention : NEURAL MACHINE TRANSLATIONBY JOINTLY LEARNING TO ALIGN AND TRANSLATE

    Attention : NEURAL MACHINE TRANSLATIONBY JOINTLY LEARNING TO ALIGN AND TRANSLATE 논문 : https://arxiv.org/pdf/1409.0473.pdf 텐서플로우 코드 : https://www.tensorflow.org/tutorials/text/nmt_with_attention https://colab.research.google.com/github/tensorflow/tensorflow/blob/master/tensorflow/contrib/eager/python/examples/nmt_with_attention/nmt_with_attention.ipynb#scrollTo+yJ_B3mhW3jFk 코드2 : https://github.c..

    [Seq2Seq] Sequence to Sequence Learning with Neural Networks

    https://arxiv.org/abs/1409.3215 (+2020기준 가장 좋은 모델은 s2s가 아닌 transformer기반이다.) Sequence to Sequence Learning with Neural Networks Deep Neural Networks (DNNs) are powerful models that have achieved excellent performance on difficult learning tasks. Although DNNs work well whenever large labeled training sets are available, they cannot be used to map sequences to sequences. In this pap arxiv.org 이전 ..

    [환경] 딥러닝 RAM 부족, 메모리 부족

    메모리 확인: nvidia-smi 방법 1. 배치를 나눈다. 방법 2. 모든 업무를 gpu로 하지 않을수 있다. 기타 잡 업무는 cpu로 처리를 하고 나머지 중요한 연산을 gpu로 진행하도록 조절한다.(코드로. with tf.device ??) import os # GPU를 아예 못 보게 하려면: os.environ["CUDA_VISIBLE_DEVICES"]='' # GPU 0만 보게 하려면: os.environ["CUDA_VISIBLE_DEVICES"]='0' # GPU 1만 보게 하려면: os.environ["CUDA_VISIBLE_DEVICES"]='0' # GPU 0과 1을 보게 하려면: os.environ["CUDA_VISIBLE_DEVICES"]='0,1' #출처: https://datamas..

    [코드] 오토인코더 - Training Deep AutoEncoders for Collaborative Filtering

    input_layer.py class UserItemRecDataProvider: def _build_maps(self): ''' self._user_id_map ,self._item_id_map 에 딕셔너리 형태로 [원래 id] = 새로운 아이디 넣기 ''' for line in src.readlines(): #한줄씩 읽기 parts = line.strip().split(self._delimiter) #strip() 맨앞과 맨뒤 \n제거 def iterate_one_epoch(self): ''' 배치로 학습할수 있게 처리하기 ''' mini_batch = torch.sparse.FloatTensor(i_torch, v_torch, torch.Size([self._batch_size, self._vect..