μ΄κ²μ https://github.com/pytorch/pytorch/issues/33568 μμ λμμ΅λλ€
>>> np.clip([3 + 4.j], -1, 2)
array([2.+0.j])
>>> np.clip([3 + 4.j], -1+1.j, 2+12.j) # imaginary component goes up
array([2.+12.j])
>>> np.clip([1 + 4.j], -1+1.j, 2+12.j) # imaginary component doesn't go up
array([1.+4.j])
볡μ‘ν μ λ ₯μ λν μ μΌν ν μ€νΈλ μΈκ·Έ ν΄νΈκ° μλλΌλ κ²μ λλ€.
ν©λ¦¬μ μΈ νλμ λ€μ μ€ νλ μΌ μ μμ΅λλ€.
λλ μ΄κ²μ΄ λ§€μ° μ€μν λ¬Έμ λΌκ³ μκ°νμ§ μμ§λ§ μ μ΄λ μνλ λμμ μ¬κΈ°μ λ¬Έμννλ©΄ μ’μ κ²μ λλ€.
νμ¬ λμμ x = sorted(x)
λν΄ x = [min, clip(arr, min, max), max]
x = sorted(x)
λ₯Ό λ§λλ κ²μ
λλ€.
λΆλͺ
νμ§ μμ νλ μ νμ μν΄ μ¬κΈ°μμ μ΅μ, μ΅λ, μ λ ¬κ³Ό μΌκ΄μ±μ κΉ¨λ κ²μ΄ κ°μΉκ° μλ€κ³ μκ°ν©λλ€. μ°λ¦¬κ° ν μ μλ€λ κ²μ΄ μλλΌ μ΅μ / μ΅λ λ° μ λ ¬ λμμ λν΄μλ λ
Όμν΄μΌν©λλ€.
κ·Έλ¦¬κ³ κ·Έκ²μ΄ absmin
, absmax
λ° abssort
μ΄ μλ―Έκ° μκ³ κΈ°λ³Έμ μΌλ‘ ν΄λ¦¬νμ μ¬μ©νλ€κ³ λ§νλ©΄.
λΉ μ€μ μ
λ ₯μ λν΄ μ€λ₯λ₯Ό μ 곡νλ κ²μΌλ‘ λ μ½κ² νμ ν μ μμ΅λλ€.
νΈμ§ : νλ¦Όμμ΄ κ΅¬μ± μμ ν΄λ¦¬νμ μ€μ λ‘ λ μ격νκΈ° λλ¬Έμ Erics λμμ νμ©ν©λλ€. κ·Έλ¬λ μ°Έκ³ λ‘ μ μ©νλ€κ³ μκ°νμ§ μμ΅λλ€. λ€λ₯Έ μ§λ¬Έμ μ΄κ²μ λν μ€μ μ¬μ© μ¬λ‘ κ° μμ΅λκΉ? λ€λ₯Έ μ½λλ‘ λ λͺ ννμ§ μμ κ²?
μ€μ λΆλΆκ³Ό νμ λΆλΆμ λ°λ‘ μλΌ λ΄κΈ°
κ·Έκ²μ΄ λμ 첫 λ²μ§Έ μ νμ΄ λ κ²μ λλ€.
μμμ λ³κ²½νμ§ μλ ν΄λ¦½ μ λ κ°
μ μ© ν μ μμ§λ§ κ°λ¨ν ν΄λ¦½λ³΄λ€ ꡬννκΈ°κ° λ 볡μ‘ν©λλ€.
λ€λ₯Έ μ§λ¬Έμ : μ΄κ²μ λν μ€μ _usecase_κ° μμ΅λκΉ? λ€λ₯Έ μ½λλ‘ λ λͺ ννμ§ μμ κ²?
그건 μ’μ μ§λ¬Έμ΄μΌ. μ λͺ¨λ₯΄κ² μ΅λλ€. λ΄κ° μλ κ²μ κ·Έκ²μ΄ λͺ λ°±ν λΆμ νν΄μλ μλλ€λ κ²μ λλ€.
μ€μ μ κ°μμ λΆλΆμ λ°λ‘ μλΌλ΄λ κ²μ΄ κ±±μ μ λλ€. μλ₯Ό λ€μ΄ μ λ ¬ λ λ°°μ΄μ΄μλ κ²½μ° ν΄λ¦¬νμ μΌλ°μ μΌλ‘ λ°°μ΄μ΄ [min_value, unchanged, max_value]μ μΈ μμμ κ°λλ‘ λ³κ²½ν©λλ€. κ·Έλ¬λ 볡μ‘ν λ°°μ΄μ μ€μ λΆλΆκ³Ό νμ λΆλΆμ κ°λ³μ μΌλ‘ μλΌ λ΄λ©΄ λ μ΄μ μ΄λ¬ν λΆλ¦¬ κ°λ₯ν μμμ΄ μκ²λ©λλ€. λμ μ΅μκ°λ³΄λ€ μκ±°λ μ΅λ κ°λ³΄λ€ ν¬μ§ μλλΌλ κ°μ΄ λ³κ²½ λ μ μμ΅λλ€!
볡μμλ₯Ό μλ₯΄λ κ²μ΄ μ νν 무μμν΄μΌνλμ§μ λν νμ μ΄μμ λκΉμ§ λμμ λΉνμ±ννλ κ²μ΄ μ’μ΅λλ€. λ΄ μ μμ c <min_valueμ΄λ©΄ min_valueλ‘ μ€μ λκ³ c> max_valueμ΄λ©΄ max_valueλ‘ μ€μ λλ€λ κ²μ λλ€.
@mruberry , λλ λμνλ€. μ΄μ¨λ λλ λκ΅°κ°κ° μ΄κ²μ λν μ μ€ μΌμ΄μ€μ‘°μ°¨ κ°μ§κ³ μλμ§μ‘°μ°¨ νμ νμ§ λͺ»νλ€. μ’ λ λμκ² λ§λ€κΈ°μν ν κ°μ§ μ£Όμ₯μΌλ‘, min.real <= max.real
κ³Ό min.imag <= max.imag
λ§ min <= max
κ³Όλ λμ‘°μ μΌλ‘ νμΈνλ©΄ λͺ¨λ κ²μ΄ μ μμ
λλ€ (νμ¬ μ€μ λ‘λ κ·Έλ μ§ μμ§λ§ NumPyμμ νμΈνμμμ€).
λλ λΉμ κ³Όλ λμν©λλ€ @seberg ;).
μ§κΈμ PyTorchμμ ν΄λ¦¬ν (ν΄λ¨νμ΄λΌκ³ λΆλ¦) 볡μ‘ν μ λ ₯μ λΉνμ±ν ν κ²μ΄λΌκ³ μκ°ν©λλ€. μ΄μ¨λ μ°λ¦¬μ νλμ NumPyμ μΌμΉνμ§ μμμ΅λλ€.
μ΄ λ¬Έμ λ₯Ό μ½λ κ²λ§μΌλ‘λ numpyμ μ¬μ λΉκ΅λ₯Ό κ³ λ €ν λμ΄ λμμ΄ μ€μ λ‘ μλ―Έκ° μλ€κ³ μκ°ν©λλ€. μ¬μ μ λΉκ΅λ₯Ό μ¬μ©νμ§ μλ κ²½μ° clip, max λ° minλ λ°λΌμΌν©λλ€. λλ μ΄κ²μ΄ μ¬κΈ°μ λλ¬ ν ν©μλΌκ³ κ°μ νκ³ μμ§λ§ μ견과 μ°κ²°λ PRμμ νμ νμ§ λͺ»νμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
@mruberry , λλ λμνλ€. μ΄μ¨λ λλ λκ΅°κ°κ° μ΄κ²μ λν μ μ€ μΌμ΄μ€μ‘°μ°¨ κ°μ§κ³ μλμ§μ‘°μ°¨ νμ νμ§ λͺ»νλ€. μ’ λ λμκ² λ§λ€κΈ°μν ν κ°μ§ μ£Όμ₯μΌλ‘,
min.real <= max.real
κ³Όmin.imag <= max.imag
λ§min <= max
κ³Όλ λμ‘°μ μΌλ‘ νμΈνλ©΄ λͺ¨λ κ²μ΄ μ μμ λλ€ (νμ¬ μ€μ λ‘λ κ·Έλ μ§ μμ§λ§ NumPyμμ νμΈνμμμ€).