본문 바로가기

Machine Learning/Deep Running

(10)
Pytorch 1.7 + colab TPU 병렬처리 사용법 colab 사용시 요약 BERT 돌리는데 자꾸 oom 문제 (out of memory)가 발생하여 Gpu 버전에서 TPU버전으로 바꿀때 바꿀것들 Pytorch는 기본적으로 GPU로 돌아가지만 xla라는 라이브러리를 이용하면 TPU를 사용가능하다. 별로 친절한 설명은 아니지만 참고바랍니다. 라이브러리 추가 : import torch import torch_xla import torch_xla.utils.utils as xu import torch_xla.core.xla_model as xm import torch_xla.utils.serialization as xser import torch_xla.distributed.parallel_loader as pl import torch_xla.distribut..
BERT BERT 모델은 Jacob Devlin, Ming-Wei Chang, Kenton Lee 및 Kristina Toutanova 가 BERT : 언어 이해 를 위한 Deep Bidirectional Transformers의 사전 교육 에서 제안되었습니다 . 이것은 Toronto Book Corpus와 Wikipedia로 구성된 대규모 말뭉치에서 마스크 된 언어 모델링 목표와 다음 문장 예측의 조합을 사용하여 사전 훈련 된 양방향 변환기입니다. 논문의 초록은 다음과 같습니다. Transformers의 Bidirectional Encoder Representations를 의미하는 BERT라는 새로운 언어 표현 모델을 소개합니다. 최근의 언어 표현 모델과 달리 BERT는 모든 레이어의 왼쪽 및 오른쪽 컨텍스트에..
hugging face / open source transformers를 근간으로하고 있는 소스이며 (BERT, GPT-2, RoBERTa, XLM, DistilBert, XLNet, T5, CTRL...) for Natural Language Understanding (NLU) and Natural Language Generation (NLG) with over thousands of pretrained models in 100+ languages and deep interoperability between PyTorch & TensorFlow 2.0. 위와같은 자연어처리 모델들을 처리할때 이용하면 손쉽게 코드를 작성할수 있다. 아파치 라이센스 2.0 이며 별도의 허가는 필요없지나 notice 파일을 별도로만들어 소스코드의 저작권 및 Attribut..
Tensorflow 1.x -> 2.x 로 변환하기 https://www.tensorflow.org/guide/migrate?hl=ko
Tensorflow 1.5 사용시 "Could not flatten dictionary: key Tensor("MultiRNNCellZeroState/BasicLSTMCellZeroState/zeros:0", shape=(int, int ), dtype=float32) is not unique" 오류 발생시 cell 선언시에 tf.nn.rnn_cell.BasicLSTMCell(rnn_size, state_is_tuple=True)에서 state_is_tuple=False로 고쳐줬을때 진행가능하다.
IMDB 데이터를 이용한 간단한 LSTM, GRU, Simple RNN 구현 순환신경망 구현 및 학습¶ In [1]: import tensorflow as tf 하이퍼 파라미터¶ In [2]: EPOCHS = 10 # 10번 수행 NUM_WORDS = 10000 모델 정의¶ In [3]: class MyModel(tf.keras.Model) : def __init__(self): super().__init__() self.emb = tf.keras.layers.Embedding(NUM_WORDS, 16) # self.lstm = tf.keras.layers.LSTM(32) # 뉴런의 개수 self.gru = tf.keras.layers.GRU(32) # LSTM의 간소한 버전 # self.basic = tf.keras.layers.SimpleRNN(32) # LSTM의 간소한 버..
딥러닝 프로젝트 결과 보고서
Dense 레이어 (Keras)등등 캐글과 CCTV프로젝트로 알게되거나 되짚은 내용 (Tensorflow2.0)(Keras) Dense 레이어는 입력과 출력을 모두 연결해줍니다. 예를 들어 입력 뉴런이 4개, 출력 뉴런이 8개있다면 총 연결선은 32개(4*8=32) 입니다. 각 연결선에는 가중치(weight)를 포함하고 있는데, 이 가중치가 나타내는 의미는 연결강도라고 보시면 됩니다. 현재 연결선이 32개이므로 가중치도 32개입니다. 예를 들어 성별을 판단하는 문제있어서, 출력 뉴런의 값이 성별을 의미하고, 입력 뉴런에 머리카락길이, 키, 혈핵형 등이 있다고 가정했을 때, 머리카락길이의 가중치가 가장 높고, 키의 가중치가 중간이고, 혈핵형의 가중치가 가장 낮을 겁니다. 딥러닝 학습과정에서 이러한 가중치들이 조정됩니다. 이렇게 입력 뉴런과 출력 뉴런을 모두 연결한다고 해서 전결합층이라고 불리고, 케라스에서는 Dense라는 클래스..