인공지능을 좋아하는 곧미남

.get_shape().as_list() 활용 방법 본문

code_study/tensorflow

.get_shape().as_list() 활용 방법

곧미남 2021. 6. 23. 10:01

오늘은 .get_shape().as_list()를 어떻게 제가 활용했는지 확인해보겠습니다.

 

간단하게 .get_shape()와 .as_list()에 관해 알아보고 딥러닝 모델을 구현할 때 어떻게 사용했는지 설명하겠습니다.

 

1. .get_shape() 란? 

   - 행렬, 배열 등의 shape를 출력해주는 함수입니다.

 

2. .as_list() 란?

   - return 되는 값이 list형태로 변환해서 return합니다.

 

convolution layer shape는 일반적으로 (batch_size, height, width, chennel) 입니다.

 

아래와 같이 선언해주면, 해당 conv layer의 height와 width shape 값을 얻을 수 있습니다. 

 

- h, w = conv_4_2.get_shape().as_list()[1:3]

 

저는 이 값을 얻어 crop 할때 사용을 하였는데요. 두 conv layer의 h, w를 얻어 tf.image.crop_to_bounding_box() 함수를 통해 좀 더 알고리즘적인 코드로 원하는 shape을 crop 할 수 있었습니다!

        h1_1, w1_1 = conv1.get_shape().as_list()[1:3]
        h1_2, w1_2 = conv2.get_shape().as_list()[1:3]
        cropping_1 = tf.image.crop_to_bounding_box(image=conv3, offset_height=int(0.5 *(h1_1- h1_2)),
                                                   offset_width=int(0.5 *(w1_1 - w1_2)),
                                                   target_height = h1_2,
                                                   target_width=w1_2)

 

Comments