tensorflow2 API 여러방향으로 모델 해보자

김승환·2021년 7월 28일
0

딥러닝공부

목록 보기
12/17

Tensorflow2 API를 여러 방법으로 활용하겠습니다.

  1. Sequential Model
  2. Functional API
  3. Subclassing

1. Sequential Model

아래 코드와 같이 층을 쌓으면서 모델을 구축하면 됩니다.


import tensorflow as tf
from tensorflow import keras

model = keras.Sequential()
model.add(__넣고싶은 레이어__)
model.add(__넣고싶은 레이어__)
model.add(__넣고싶은 레이어__)

model.fit(x, y, epochs=10, batch_size=32)

2. Functional API

Functional은 변수에 대입하면서 모델을 구축하는 것 입니다.


import tensorflow as tf
from tensorflow import keras

inputs = keras.Input(shape=(__원하는 입력값 모양__))
x = keras.layers.__넣고싶은 레이어__(관련 파라미터)(input)
x = keras.layers.__넣고싶은 레이어__(관련 파라미터)(x)
outputs = keras.layers.__넣고싶은 레이어__(관련 파라미터)(x)

model = keras.Model(inputs=inputs, outputs=outputs)
model.fit(x,y, epochs=10, batch_size=32)

3. Subclassing

class 구문을 만들어서 모델을 구축하는 것 입니다.

import tensorflow as tf
from tensorflow import keras

class CustomModel(keras.Model):
    def __init__(self):
        super(CustomModel, self).__init__()
        self.__정의하고자 하는 레이어__()
        self.__정의하고자 하는 레이어__()
        self.__정의하고자 하는 레이어__()
    
    def call(self, x):
        x = self.__정의하고자 하는 레이어__(x)
        x = self.__정의하고자 하는 레이어__(x)
        x = self.__정의하고자 하는 레이어__(x)
        
        return x
    
model = CustomModel()
model.fit(x,y, epochs=10, batch_size=32)

이 여러 방식이 있는게 왜 있는지 이해가 안될 수 있습니다. 하지만 입맛에 맞게 잘 코드를 구축할 때가 있습니다. 그런 상황에 유용?하게 사용하라는 것 같네요!

profile
인공지능 파이팅!

0개의 댓글