Thursday, March 11, 2021

Tensorflow 텐서플로우 모델 출력에서 Median 값 추출하기

 자주는 아니지만 어쩌다 한번씩 이미지의 출력 통계치를 활용해서 픽셀 값들을 조정해주고 싶을 때가 있다. 평균이야 그냥 reduce_mean 사용하면 쉽게 구할 수 있어서 기억할 것도 없는데... median 값은 그 함수가 저기 안쪽에 처 박혀 있어서 쓸 때마다 찾아봐야 기억이 난다 -_-;;


아래는 그 예시이다.

tf.contrib.distributions.percentile(y_real_pixel, 50.)


첫번째 인수는 이미지를 저장하고 있는 텐서의 이름이고, 두번째 인수에는 그 위치 값을 지정해서 구할 수 있는데... median은 중앙값이므로 그냥 50.0 지정 해주면 된다.

Tuesday, March 9, 2021

Tensorflow 텐서플로우 네트워크 중간에서 값 추출하기 or 타일 생성하기

 텐서플로우 네트워크를 디자인 하다보면,

특정 계수를 뽑아 내거나 혹은 타일 형태로 생성하여 다른 입력과 곱해야 할 경우가 생긴다.

이 때, 두 텐서 사이에 크기가 맞지 않으면 연산이 되질 않아 여간 귀찮은게 아님 -_-


아무튼 이럴 때 tf.split과 tf.tile 조합을 통해 원하는 출력을 만들어 낼 수 있다.


예시는 아래를 참조


gain, offset = tf.split(h_linear_4, num_or_size_splits=2, axis=1)

gain_tile = tf.tile(gain, [1, 128 * 128])
gain_tile = tf.reshape(gain_tile, [-1, 128, 128])
gain_tile = tf.expand_dims(gain_tile, axis=3)

offset_tile = tf.tile(offset, [1, 128 * 128])
offset_tile = tf.reshape(offset_tile, [-1, 128, 128])
offset_tile = tf.expand_dims(offset_tile, axis=3)

output = data_pan * gain_tile + offset_tile