ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #14. Keras tutorial - the Happy House
    연구실 2019. 10. 14. 14:56

    - Tensorflow가 higher-level framework라면 Keras는 더욱 higher-level framwork이며 추가적인 abstraction을 제공한다.

    - 제한적인 부분들이 많아 Tensorflow만큼 복잡한 모델을을 실행시키진 못하지만 많은 common model들에 대해 잘 작동한다.

     

    - 예시는 (64, 64, 3) 이미지에 600개의 training set과 150개의 test set으로 구성되어 있으며 label은 1(happy)/0(unhappy)

     

    * Building a model in Keras

    def model(input_shape):
        # Define the input placeholder as a tensor with shape input_shape. Think of this as your input image!
        X_input = Input(input_shape)
    
        # Zero-Padding: pads the border of X_input with zeroes
        X = ZeroPadding2D((3, 3))(X_input)
    
        # CONV -> BN -> RELU Block applied to X
        X = Conv2D(32, (7, 7), strides = (1, 1), name = 'conv0')(X)
        X = BatchNormalization(axis = 3, name = 'bn0')(X)
        X = Activation('relu')(X)
    
        # MAXPOOL
        X = MaxPooling2D((2, 2), name='max_pool')(X)
    
        # FLATTEN X (means convert it to a vector) + FULLYCONNECTED
        X = Flatten()(X)
        X = Dense(1, activation='sigmoid', name='fc')(X)
    
        # Create model. This creates your Keras model instance, you'll use this instance to train/test the model.
        model = Model(inputs = X_input, outputs = X, name='HappyModel')
    
        return model

    - 텐서플로우와는 달리 하나의 변수만을 사용해 가장 latest 값을 계산한다. 

     

    - 총 4개의 step으로 모델을 러닝시키게 된다.

        (1) create the model

        (2) compile the model by model.compile(optimizer = "...", loss = "...", metrics = ["accuracy"])

        (3) trian the model on train data by model.fit(x = ..., y = ..., epochs = ..., batch_size = ...)

        (4) test the model on test data by model.evaluate(x = ..., y = ...)

     

     

     

    - Keras는 빠른 prototyping을 위해 사용하면 좋다. 서로 다른 모델 구조를 간단하고 빠르게 시도할 수 있기 때문이다. 

    - Create->Compile->Fit/Train->Evaluate/Test 순으로 진행된다. 이를 기억해 모델을 만들자.

     

    - model.summary(): 레이어들에 대한 정보를 알려주는 함수

    - model.plot_model():  그래프를 시각화해 저장할 수 있도록 만들어준다.

    '연구실' 카테고리의 다른 글

    #16. Autonomous driving - Car detection  (0) 2019.10.15
    #15. Residual Networks  (0) 2019.10.14
    #13. Convolutional Neural Networks: Application  (0) 2019.10.13
    #12. Convolutional Neural Networks: Step by Step  (0) 2019.10.13
    #11. Tensorflow Tutorial  (0) 2019.10.10

    댓글

©hyunbul