ML

200624

stri.destride 2020. 6. 24. 21:42

이번엔 제발 그만 까먹어야지 

 

tensorflow 1.x의 tf.layers.conv2d(input, filter, kernel_size, strides, padding, data_format='NHWC', dilation_rate=1)

- input [N, H, W, C]

- filter: integer, output space의 차원을 가리킴...channel이라고 생각하는게 빠르다 

- kernel_size: 2d convolution을 할 때 쓰는 patch의 size라고 보면 댐, 그니까 kernel이 (3, 3)이고 filter가 32라고 하면 weight matrix는 [3, 3, 32] 크기임 

- strides: list or integer, 만약에 dilation!=1 이면 always stride =1 

 

* output size에 관하여....

(N, T, D) -> [conv2d ] -> (N, T/stride, D/stride, C) 이 output이 feature map이라고 부르는데 예를 들어 이 상황에서는 T/stride, D/stride 크기의 C개 피쳐 맵을 갖게 되는 것, where N means batch size, T means frame size, D means mel frequency dim 

사실 output size의 풀 버전은... (T_out, D_out) = ( (T+2P-FT/S) + 1, (D+2P-FD/S) + 1 ), FD는 D의 필터 크기, P는 패딩, S는 스트라이드~!  

 

* 필터 수에 따른 컨볼루션 레이어의 정의,, https://tykimos.github.io/2017/01/27/CNN_Layer_Talk/참고 

1) 입력은 3*3*1, 필터는 2*2 1개이면 ouptut은 3*3*1 

2) 입력은 3*3*1, 필터는 2*2 3개이면 output은 3*3이미지가 총 3개 -> 필터가 여러개니까 출력 이미지도 늘어난 것이라서 합치기 안함;; 

3) 입력은 3*3*3, 필터는 2*2 1개이면 output은 3*3*1임 (필터가 1개니까 다 더하는 것~~)

4) 입력은 3*3*3, 필터는 2*2 2개이면 output은 3*3*2임 

'ML' 카테고리의 다른 글

200628  (0) 2020.06.29
200625  (0) 2020.06.29
200623  (0) 2020.06.24
200618  (0) 2020.06.23
200612  (0) 2020.06.12