๐[Algorithms] Cosine_similarity(์ฝ์ฌ์ธ ์ ์ฌ๋) ์๊ณ ๋ฆฌ์ฆ์ ๋ํด์โฆ
Cosine_similarity(์ฝ์ฌ์ธ ์ ์ฌ๋)๋?
์ฝ์ฌ์ธ ์ ์ฌ๋๋ ๋ ๋ฒกํฐ ๊ฐ์ ์ฝ์ฌ์ธ ๊ฐ๋๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํ ์ ์๋ ๋ ๋ฒกํฐ์ ์ ์ฌ๋๋ฅผ ์๋ฏธํฉ๋๋ค.
๋ ๋ฒกํฐ์ ๋ฐฉํฅ์ด ์์ ํ ๋์ผํ ๊ฒฝ์ฐ์๋ 1์ ๊ฐ์ ๊ฐ์ง๋ฉฐ, 90ยฐ์ ๊ฐ์ ์ด๋ฃจ๋ฉด 0, 180ยฐ๋ก ๋ฐ๋์ ๋ฐฉํฅ์ ๊ฐ์ง๋ฉด -1์ ๊ฐ์ ๊ฐ๊ฒ ๋ฉ๋๋ค.
์ฆ, ๊ฒฐ๊ตญ ์ฝ์ฌ์ธ ์ ์ฌ๋๋ -1 ์ด์ 1 ์ดํ์ ๊ฐ์ ๊ฐ์ง๋ฉฐ ๊ฐ์ด 1์ ๊ฐ๊น์ธ์๋ก ์ ์ฌ๋๊ฐ ๋๋ค๊ณ ํ๋จํ ์ ์์ต๋๋ค.
์ด๋ฅผ ์ง๊ด์ ์ผ๋ก ์ดํดํ๋ฉด ๋ ๋ฒกํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฐฉํฅ์ด ์ผ๋ง๋ ์ ์ฌํ๊ฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
squeeze()
squeezeํจ์๋ ์ฐจ์์ด 1์ธ ์ฐจ์์ ์ ๊ฑฐํด์ค๋ค.
๋ฐ๋ก ์ฐจ์์ ์ค์ ํ์ง ์์ผ๋ฉด 1์ธ ์ฐจ์์ ๋ชจ๋ ์ ๊ฑฐํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐจ์์ ์ค์ ํด์ฃผ๋ฉด ๊ทธ ์ฐจ์๋ง ์ ๊ฑฐํ๋ค.
[์์ ]
import torch
x = torch.rand(1, 1, 20, 128)
x = x.squeeze() # [1, 1, 20, 128] -> [20, 128]
# 1๋ฒ ์์น์ ์ฐจ์ 1์ ์ญ์
x2 = torch.rand(1, 1, 20, 128)
x2 = x2.squeeze(dim=1) # [1, 1, 20, 128] -> [1, 20, 128]
idxmin() & idxmax()
์ต๋๊ฐ์ด๋ ์ต์๊ฐ์ ๊ฐ๋ ์ธ๋ฑ์ค๋ฅผ ๋ถ๋ฌ์ค๋ ๋ฉ์๋
- idxmin(): ์ต์๊ฐ์ ๊ฐ๋ ์ธ๋ฑ์ค ๋ ์ด๋ธ ์ถ๋ ฅ
- idxmax(): ์ต๋๊ฐ์ ๊ฐ๋ ์ธ๋ฑ์ค ๋ ์ด๋ธ ์ถ๋ ฅ
๋๊ธ๋จ๊ธฐ๊ธฐ