본문 바로가기

coursera71

[tensorflow] GradientTape (tensorflow v2.4.0) 2021/01/12 - [ML & DL/tensorflow] - [tensorflow] Custom Training Loops (tf.GradientTape) [tensorflow] Custom Training Loops (tf.GradientTape) (tensorflow v2.4.0) 일반적으로 딥러닝 모델을 학습할 때, Build in Solution인 model.compile()과 model.fit()을 많이 사용합니다. model.compile()을 통해서 optimizer와 loss를 지정하고, model.fit()을 통해.. junstar92.tistory.com 이전 게시글에서 Custom Training Loop를 직접 구현해서 모델을 학습시켜보았습니다.. 2021. 1. 12.
[tensorflow] Custom Training Loops (tf.GradientTape) (tensorflow v2.4.0) 일반적으로 딥러닝 모델을 학습할 때, Build in Solution인 model.compile()과 model.fit()을 많이 사용합니다. model.compile()을 통해서 optimizer와 loss를 지정하고, model.fit()을 통해서 training data의 batches를 통해 학습을 반복(loop) 합니다. tensorflow에서는 model.compile과 model.fit을 사용해 학습할 수도 있지만, 직접 train loop를 구성해서 Custom Training의 방법으로도 학습이 가능합니다. Custom Training Loops를 구성할 때에는 여러 가지 작업이 필요한데, 1)training data의 batches를 관리, 2)mod.. 2021. 1. 12.
[tensorflow] Custom Model (Mini ResNet, VGGNet 구현) (tensorflow v2.4.0) Functional API와 Sequential API를 사용해서 여러개의 input이나 여러개의 output을 가지는 Model을 구성할 수 있습니다. 아래는 그 방법으로 구성한 Wide and Deep model 입니다. import tensorflow as tf from tensorflow.keras.utils import plot_model from tensorflow.keras.layers import Input, Dense, concatenate from tensorflow.keras.models import Model # functional API # define inputs input_a = Input(shape=[1], name="Wide_Input").. 2021. 1. 12.
[tensorflow] Custom Lambda layer / Custom layer (tensorflow v2.4.0) tensorflow에서 Lambda layer를 사용하면 사용자가 정의한 코드로 layer를 실행할 수 있으며, Sequential API model 안에서 임의의 함수로 실행됩니다. Lambda layer는 다음과 같은 형태로 정의하여 사용할 수 있습니다. tf.keras.layers.Lambda(lambda x: tf.abs(x)) 이 Lambda layer는 input을 절대값으로 바꿔주는 역할을 하는 layer가 되는 것이죠. 그렇다면 기본적인 MNIST model을 어떻게 Lambda layer로 구성하는지 살펴보도록 하겠습니다. import tensorflow as tf from tensorflow.keras.datasets import mnist (x_tr.. 2021. 1. 11.
[tensorflow] Custom Loss (Huber Loss, Contrastive Loss 구현) (tensorflow v2.4.0) tensorflow에서 기본적으로 Loss function은 아래와 같은 방법들로 사용할 수 있습니다. mean spuare error loss를 예시로 살펴보도록 하죠. # 1 model.compile(loss='mse', optimizer='sgd') from tensorflow.keras.losses import mean_squared_error # 2-1 model.compile(loss=mean_squared_error, optimizer='sgd') # 2-2 using hyperparameters model.compile(loss=mean_squared_error(param=value), optimizer='sgd') 2-2번의 경우에는 제공되는 loss .. 2021. 1. 11.
[tensorflow] Siamese Network (Fashion MNIST 비교 모델 구현) (tensorflow v2.4.0) tensorflow에서는 Sequential API를 사용해서 Layer를 순차적으로 쌓아서 모델을 구성할 수도 있지만, Functional API를 통해서 입력 또는 출력이 여러개거나, 중간에 branch를 만들어서 분리를 하는등 조금 더 Flexibile한 모델을 구성할 수 있습니다. 기본적인 Sequential Model은 다음과 같이 구현할 수 있습니다. import tensorflow as tf def build_model_with_sequential(): # instantiate a Sequential class and linearly stack the layers of your model seq_model = tf.keras.models.Sequential.. 2021. 1. 11.
[Coursera] Deep Learning Specialization 강의 요약 Deep Learning Specialization(딥러닝 특화과정) 강의 요약을 모아서 정리해두었습니다. 1 - Neural Networks and Deep Learning Week 1,2 2020/08/30 - [Coursera 강의/Deep Learning] - Basics of Neural Network programming (Week 1, 2) 2020/09/24 - [Coursera 강의/Deep Learning] - [실습] Logistic Regression with a Neural Network(can / non-cat classifier) Week 3 2020/09/20 - [Coursera 강의/Deep Learning] - Deep Neural Network(DNN) 2020/09/.. 2020. 12. 31.
[실습] Neural Machine Translation with Attention 해당 내용은 Coursera의 딥러닝 특화과정(Deep Learning Specialization)의 다섯 번째 강의 Recurrent Neural Network를 듣고 정리한 내용입니다. (Week 3) 3주차 실습 중의 하나는 Attention 모델이 포함된 Neural Machine Translation(NMT) 구현입니다. 이번 실습에서는 human-readable dates를 machine-readable dates로 변환하는 모델을 구현할 예정입니다. human-readable dates는 '25th of June, 2009'와 같이 영어와 숫자 등이 섞여 있는 형태이며, machine-readable dates는 '2009-06-25'와 같이 숫자와 '-' 대쉬가 섞여있는 형태입니다. 사용되.. 2020. 12. 29.
Sequence models & Attention mechnism / Speech recognition(CTC) 해당 내용은 Coursera의 딥러닝 특화과정(Deep Learning Specialization)의 다섯 번째 강의 Recurrent Neural Network를 듣고 정리한 내용입니다. (Week 3) Various sequence to sequence architectures [Basic Models] 이번 강의부터는 Sequence-to-sequence 모델에 대해서 배우게 된다. Basic model부터 시작해서 Beam search와 attention model에 대해서 알아보자. 'Jane viste l'Afrique en septembre'라는 프랑스어로 된 문장을 영어 문장으로 변환하고 싶다면, 프랑스어로 된 문장 시퀀스를 \(x^{}\)부터 \(x^{}\)까지 표시하고, \(y^{}\).. 2020. 12. 28.
[실습] Operations on word vectors - Debiasing 해당 내용은 Coursera의 딥러닝 특화과정(Deep Learning Specialization)의 다섯 번째 강의 Recurrent Neural Network를 듣고 정리한 내용입니다. (Week 2) 2주차 첫번째 실습은 Word Embedding의 bias를 제거하는 방법을 직접 구현해보는 것입니다. 임베딩은 미리 학습된 GloVe 임베딩을 사용할 것이며, 이는 nlp.stanford.edu/projects/glove/ 에서 다운받을 수 있습니다. import numpy as np def read_glove_vecs(glove_file): with open(glove_file, 'r', encoding='utf-8') as f: words = set() word_to_vec_map = {} for.. 2020. 12. 26.