tf.keras.layers.Conv2D

tf.keras.layers.Conv2D은 2D 컨볼루션 레이어입니다.



예제1

import tensorflow as tf

input_shape = (4 ,28, 28, 3)
x = tf.random.normal(input_shape)
y = tf.keras.layers.Conv2D(
  2, 3, activation='relu', input_shape=input_shape[1:])(x)

print(input_shape)
print(y.shape)
(4, 28, 28, 3)
(4, 26, 26, 2)

tf.random.normal() 함수를 사용해서 임의의 값을 갖는 텐서를 만들었습니다.

tf.keras.layers.Conv2D의 첫번째, 두번째 인자는 각각 filterskernel_size입니다.

따라서 입력값의 형태가 (4, 28, 28, 3)일때, 출력값의 형태는 (4, 26, 26, 2)입니다.



예제2

import tensorflow as tf

input_shape = (4, 28, 28, 3)
x = tf.random.normal(input_shape)
y = tf.keras.layers.Conv2D(
  2, 3, activation='relu', dilation_rate=2, input_shape=input_shape[1:])(x)

print(y.shape)
(4, 24, 24, 2)

dilation_rate의 값을 2로 하면 출력값의 형태가 (4, 24, 24, 2)가 됩니다.



예제3

import tensorflow as tf

input_shape = (4, 28, 28, 3)
x = tf.random.normal(input_shape)
y = tf.keras.layers.Conv2D(
  2, 3, activation='relu', padding='same', input_shape=input_shape[1:])(x)

print(y.shape)
(4, 28, 28, 2)

padding=’same’과 같이 지정하면 입력과 출력이 값은 크기 (28x28)를 갖게 됩니다.



이전글/다음글

이전글 :