텐서플로우 네트워크를 디자인 하다보면,
특정 계수를 뽑아 내거나 혹은 타일 형태로 생성하여 다른 입력과 곱해야 할 경우가 생긴다.
이 때, 두 텐서 사이에 크기가 맞지 않으면 연산이 되질 않아 여간 귀찮은게 아님 -_-
아무튼 이럴 때 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
No comments:
Post a Comment