더북(TheBook)

U-Net에 대해서는 네트워크(신경망) 구축 부분만 간단히 예시 코드로 살펴보겠습니다. 먼저 U-Net의 수축 경로를 텐서플로 2로 구현해 보겠습니다. 수축 경로는 다음과 같이 합성곱층 두 개와 하나의 최대 풀링(2×2)으로 구성되어 있습니다.

inputs = layers.Input(shape=(572,572,1)) ------ 입력 이미지는 그레이스케일로 구성

c0 = layers.Conv2D(64, activation='relu', kernel_size=3)(inputs)
c1 = layers.Conv2D(64, activation='relu', kernel_size=3)(c0) ------ 확장 경로와 연결하기 위한 계층
c2 = layers.MaxPool2D(pool_size=(2,2), strides=(2,2), padding='valid')(c1)  ------ 합성곱 두 개와 하나의 최대 풀링으로 구성

c3 = layers.Conv2D(128, activation='relu', kernel_size=3)(c2)
c4 = layers.Conv2D(128, activation='relu', kernel_size=3)(c3) ------ 확장 경로와 연결하기 위한 계층
c5 = layers.MaxPool2D(pool_size=(2,2), strides=(2,2), padding='valid')(c4)  ------ 합성곱 두 개와 하나의 최대 풀링으로 구성

c6 = layers.Conv2D(256, activation='relu', kernel_size=3)(c5)
c7 = layers.Conv2D(256, activation='relu', kernel_size=3)(c6) ------ 확장 경로와 연결하기 위한 계층
c8 = layers.MaxPool2D(pool_size=(2,2), strides=(2,2), padding='valid')(c7)  ------ 합성곱 두 개와 하나의 최대 풀링으로 구성

c9 = layers.Conv2D(512, activation='relu', kernel_size=3)(c8)
c10 = layers.Conv2D(512, activation='relu', kernel_size=3)(c9) ------ 확장 경로와 연결하기 위한 계층
c11 = layers.MaxPool2D(pool_size=(2,2), strides=(2,2), padding='valid')(c10)

c12 = layers.Conv2D(1024, activation='relu', kernel_size=3)(c11)
c13 = layers.Conv2D(1024, activation='relu', kernel_size=3, padding='valid')(c12)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.