-
[Python]tensorflow.maximum()카테고리 없음 2021. 9. 28. 14:51
tf.maximum( a_matrix, b_matrix )
# Case 1 # tf.maximum() 함수는 기본적으로 element-wise 로 # max 값을 return 해주는 함수이다. # 하지만 shape 이 다르더라도 아래와 같이 한쪽 매트릭스가 # 다른 한쪽 매트릭스에서 iterable 하다면 # iterable 한 matrix 를 다른쪽 매트릭스에서 반복시켜서 # element-wise 한 max 값으로 매트릭스를 리턴 받을 수 있다. # (row,col) 에서 row = 1 일 때 sp216 = np.random.randint(0,100, (2,1,6)) # array([[[ 5, 70, 44, 97, 68, 46]], # [[ 0, 81, 70, 44, 57, 79]]]) sp246 = np.random.randint(-100,0, (2,4,6)) # array([[[-38, -2, -40, -57, -70, -73], # [-43, -11, -19, -78, -23, -92], # [-12, -96, -55, -6, -74, -50], # [-94, -70, -28, -64, -39, -76]], # [[-26, -54, -66, -92, -97, -33], # [-94, -83, -13, -37, -94, -29], # [-94, -31, -56, -54, -73, -53], # [-45, -37, -34, -24, -6, -56]]]) tf.maximum(sp246,sp216) # array([[[ 5, 70, 44, 97, 68, 46], # [ 5, 70, 44, 97, 68, 46], # [ 5, 70, 44, 97, 68, 46], # [ 5, 70, 44, 97, 68, 46]], # [[ 0, 81, 70, 44, 57, 79], # [ 0, 81, 70, 44, 57, 79], # [ 0, 81, 70, 44, 57, 79], # [ 0, 81, 70, 44, 57, 79]]])> # Case 2 # sp188 = (1, 3, 8) # sp218 = (2, 1, 8) # 같은 경우에는 어떻게 될까? # 해당 케이스의 경우에 batch 의 차원이 다르다. # 결론부터 말하자면, sp218 의 batch 각각을 세부 케이스로 보고 # sp188 의 batch dimension 을 1->2 로 늘리고 각각을 비교한다. sp188 = np.random.randint(0,100, (1,3,8)) # array([[[47, 3, 46, 73, 60, 77, 76, 26], # [ 6, 32, 18, 90, 21, 5, 96, 83], # [51, 70, 46, 48, 58, 97, 3, 70]]]) sp218 = np.random.randint(-100,0, (2,1,8)) # array([[[-27, -8, -87, -46, -67, -17, -29, -12]], # [[-43, -60, -47, -86, -94, -66, -8, -55]]]) tf.maximum(sp188,sp218) # array([[[47, 3, 46, 73, 60, 77, 76, 26], # [ 6, 32, 18, 90, 21, 5, 96, 83], # [51, 70, 46, 48, 58, 97, 3, 70]], # [[47, 3, 46, 73, 60, 77, 76, 26], # [ 6, 32, 18, 90, 21, 5, 96, 83], # [51, 70, 46, 48, 58, 97, 3, 70]]])>