본문 바로가기

tensorflow33

Saliency Map (tensorflow v2.4.0) 2021/01/18 - [ML & DL/tensorflow] - Class Activation Map(CAM) Class Activation Map(CAM) (tensorflow v2.4.0) 오래전부터 CNN Model을 해석하기 위한 방법을 찾아왔습니다. 이전에는 주로 filter들을 시각화하거나 filter가 최대로 활성화하는 입력을 찾는 등의 filter 단위의 해석이 많았고, 실제 junstar92.tistory.com CAM에서는 CNN 구조의 탑에 Global Average Pooling(GAP) layer를 두고, Dense layer를 쌓아서 Dense layer의 가중치와 마지막 Conv layer의 feature map을 통해서 모델이 이미지의 어떤.. 2021. 1. 18.
Class Activation Map(CAM) (tensorflow v2.4.0) 오래전부터 CNN Model을 해석하기 위한 방법을 찾아왔습니다. 이전에는 주로 filter들을 시각화하거나 filter가 최대로 활성화하는 입력을 찾는 등의 filter 단위의 해석이 많았고, 실제 모델이 이미지의 어떤 부분을 보고 예측하는지는 알 수 없었습니다. 하지만, Class Activation Map(CAM, paper)을 사용하면서 모델이 이미지의 어떤 부분을 보고 판단을 내리는지 어느 정도 알아낼 수 있습니다. 바로 아래처럼 말이죠. Class Activation Map은 다음과 같이 구할 수 있습니다. 기본적인 Conv layer - Pooling layer의 구조를 쌓고 Feature들을 추출합니다. 그리고 CNN 구조 마지막에 Feature map을.. 2021. 1. 18.
[tensorflow] UNet (Oxford-IIIT Pet segmentation) (tensorflow v2.4.0) 2021/01/16 - [ML & DL/tensorflow] - [tensorflow] Fully Convolutional Networks(FCNs) [tensorflow] Fully Convolutional Networks(FCNs) (tensorflow v2.4.0) Fully Convolutional Network(FCN)를 사용해서 Image Segmentation을 수행하는 모델을 구현해보도록 하겠습니다. 먼저 FCN에 대해서 아주 간단하게 살펴보겠습니다. FCN의 자세한 내용은 논문.. junstar92.tistory.com 이번에는 Fully Convolutional network에 이어서 Image Segmentation을 목적으로 제안된 FCN을 기반으.. 2021. 1. 17.
[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.
[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.