[인공지능] 케라스 기초 - 주요 레이어

참조


Dense

  • Fully-Connected Layer
  • 노드수(유닛수), 활성화 함수 등을 지정
  • name을 통한 레이어간 구분 가능
  • 기본적으로 Glorot_uniform 가중치, zeros bias로 초기화
    • kernel_initializer 인자를 통해 다른 가중치 초기화를 진행할 수 있음
import numpy as np
import tensorflow as tf

from tensorflow.keras.layers import Dense, Input, Flatten, Activation
from tensorflow.keras.models import Sequential
from tensorflow.keras import Model

dense = Dense(10, activation='relu', name='Dense Layer')

print(dense)

dense2 = Dense(15, activation='softmax')

print(dense2)
<keras.layers.core.dense.Dense object at 0x0000016C1AA3B2E0>
<keras.layers.core.dense.Dense object at 0x0000016C1AA3B280>

Activation

  • Dense layer에서 미리 활성화함수를 지정할 수도 있지만 때에 따라서 따로 레이어를 만들어 줄 수 있음
import numpy as np
import tensorflow as tf

from tensorflow.keras.layers import Dense, Input, Flatten, Activation
from tensorflow.keras.models import Sequential
from tensorflow.keras import Model

dense = Dense(10, kernel_initializer = 'he_normal', name='Dense Layer')
dense = Activation(dense)

print(dense)
<keras.layers.core.activation.Activation object at 0x00000174EAE6B280>

Flatten

  • 배치 크기(또는 데이터 크기)를 제외하고 데이터를 1차원으로 쭉 펼치는 작업
  • 예시
    • (128, 3, 2, 2) -----> (128, 12)
import numpy as np
import tensorflow as tf

from tensorflow.keras.layers import Dense, Input, Flatten, Activation
from tensorflow.keras.models import Sequential
from tensorflow.keras import Model

print(Flatten(input_shape=(28,28)))
<keras.layers.core.flatten.Flatten object at 0x000002A2F2519BA0>

input

  • 모델의 입력을 정의
  • shape, dtype을 포함
  • 하나의 모델은 여러 개의 입력을 가질 수 있음
  • summary() 메서드를 통해서는 보이지 않음
from copyreg import constructor
import numpy as np
import tensorflow as tf

from tensorflow.keras.layers import Dense, Input, Flatten, Activation
from tensorflow.keras.models import Sequential
from tensorflow.keras import Model

input_1 = Input(shape=(28,28), dtype=tf.float32)
input_2 = Input(shape=(8,), dtype=tf.int32)

print(input_1)
print(input_2)
KerasTensor(type_spec=TensorSpec(shape=(None, 28, 28), dtype=tf.float32, name='input_1'), name='input_1', description="created by layer 'input_1'")
KerasTensor(type_spec=TensorSpec(shape=(None, 8), dtype=tf.int32, name='input_2'), name='input_2', description="created by layer 'input_2'")
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY