본문 바로가기

ML & DL75

[tensorflow] Fully Convolutional Networks(FCNs) (tensorflow v2.4.0) Fully Convolutional Network(FCN)를 사용해서 Image Segmentation을 수행하는 모델을 구현해보도록 하겠습니다. 먼저 FCN에 대해서 아주 간단하게 살펴보겠습니다. FCN의 자세한 내용은 논문을 참조하시기 바랍니다.(paper) Fully Convolutional Networks(FCN) 논문의 제목에서 나타나듯이, FCN은 Image Segmentation을 위해 만들어진 네트워크입니다. 네트워크는 위 이미지처럼 Image를 입력으로 받고, 일반적인 Conv Block(Conv - Pooling) 구조를 여러층으로 쌓아서 Feature extractor를 구성하고, 추출된 feature들을 Fully-connected layer가 아.. 2021. 1. 16.
Breast Cancer Prediction (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 이전 게시글에서 GradientTape를 사용해서 API가 아닌 직접 Training loop.. 2021. 1. 13.
[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.
Convolutional Neural Network(CNN) CNN 대뇌의 시각 피질 연구에서 시작된 Convolutional Neural Network(합성곱 신경망)은 이미지 인식 분야에 많이 사용됩니다. 이 기술은 이미지 인식뿐만 아니라 음성인식이나 자연어처리(NLP) 같은 다른 분야에서도 많이 사용되고 있습니다. 데이비드 허블과 토르스텐 비셀의 시각 피질 연구를 통해서 시각 피질 안의 많은 뉴런이 작은 local receptive field를 가진다는 것을 보였는데, 쉽게 설명하면 뉴런들은 보고있는 이미지에서 수직선, 대각선 등의 일부 시각 자극에만 반응하고, 뉴런들을 서로 겹쳐서 전체 이미지를 만들어서 인식한다는 것입니다. 즉, 어떤 뉴런은 수평선 이미지에만 반응하고 다른 뉴런은 다른 각도의 선분에 반응한다는 것을 발견한 것이죠. 이러한 시각 피질 연구를.. 2021. 1. 4.
[Kaggle] Dog Breed Identification (tensorflow v2.4.0) www.kaggle.com/c/dog-breed-identification Dog Breed Identification Determine the breed of a dog in an image www.kaggle.com Kaggle의 Dog Breed Identification을 tensorflow의 pre-trained InceptionV3 모델을 Feature Extraction으로 사용해서 구현해보도록 하겠습니다. 1. Data 준비 제공되는 Data는 다음과 같습니다. 학습용 Dog image 10222장 학습 data의 label.csv 제출용 Dog image 10357장 이번에 Kaggle API를 사용해서 Data를 Colab에서 다운받고 진행을 해보려고.. 2021. 1. 1.