모양이 3x3
, 5x5
, , ... scipy.ndimage.rotate 인 다른 배열 (dtype
: np.float32
)을 회전시킵니다. 입력 배열은 항상 sum <= 1.0
이고 대부분의 경우 합계 1.0에서 매우 작은 엡실론을 뺀 값과 같습니다. 이 배열의 최소값은 항상 >= 0.0
입니다.배열 값을 특정 값/간격으로 변경 하시겠습니까?
[0.0, 1.0]
의 결과 값이 항상 scipy.ndimage.rotate
인 배열을 가져와야하지만, 때때로 -1.0755285551056204e-16
과 같이 매우 작은 음수 값을 가져 오는 경우가 종종있었습니다. 부동 소수점 숫자가 정확하지 않아서 나타납니다.
그러나 출력 배열의 값을 예상 간격 인 [0.0, 1.0]
으로 스쿼시하고 싶습니다 (합계 < = 1.0 임). 가능한 한 빨리 (계산 시간) 어떻게 할 수 있습니까?
softmax과 같은 것은 이미 높은 값이 더욱 높아지는 방식으로 배열의 값을 다시 지수 화 (지수 적으로)하기 때문에 좋은 생각이 아닙니다.
일부 드문 경우로 scipy.ndimage.rotate
의 반환 배열에도 sum> 1.0 (양수 float 부정확?!)이 있었으므로 sigmoid function을 사용하는 것이 좋지 않을 것입니다. 왜냐하면 값을 독립적으로 스케일링하기 때문입니다. 합계가 < = 1.0인지 확인하십시오.
작은 음수 값은 본질적으로 0입니다. 행렬에'max (0, value)'를 적용해도 괜찮습니까? 합계는 여전히 1에서 작은 엡실론을 뺀 것입니다. – pault
배열의 최소값을 빼는 경우 (최소값이 <0 인 경우 abs를 추가 한 다음 모든 값을 합계로 나누면 모든 값> = 0 및 합계 = 1이 얻어야합니다. 그러나이 목표를 성취 할 수있는 다른 방법이 있습니다. 그래서 당신이하는 일은 목표가 무엇인지에 정확히 의존 할 것입니다. – tom10
@ tom10 이것은 합리적이고 빠른 방법처럼 들립니다. 또한 값이 서로 간의 관계를 잃지 않도록 할 것입니다. 맞습니까? – daniel451