質問編集履歴

1

cos_similarityの中の処理を一部変更しました。結果自体は変わらないと思います。またA,Bをコメントアウトに記載のサイトをもとに一部変更しました

2022/11/16 05:54

投稿

tako15
tako15

スコア11

test CHANGED
File without changes
test CHANGED
@@ -50,13 +50,16 @@
50
50
  b = model(y)
51
51
 
52
52
  # cos類似度を求める(epsは母数がゼロにならないようにするため)
53
+ # cos_similarityの中の処理を一部変更しました。結果自体は変わらないと思います。
53
54
  def cos_similarity(a, b, eps=1e-8):
54
- na = a / (np.sqrt(np.sum(a**2)) + eps)
55
+ cos = np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b)) + eps
55
- nb = b / (np.sqrt(np.sum(b**2)) + eps)
56
- return np.dot(na, nb)
56
+ return cos
57
57
 
58
- A = a[2][11].detach().numpy()
58
+ A = (a[2][11]).to('cpu').detach().numpy()
59
- B = b[2][11].detach().numpy()
59
+ B = (b[2][11]).to('cpu').detach().numpy()
60
+ # https://tzmi.hatenablog.com/entry/2020/02/16/170928#pytorch-tensor%E3%81%8B%E3%82%89-numpy-ndarray%E3%81%B8%E5%A4%89%E6%8F%9B
61
+ # このサイトをもとに一部A,Bを修正しました
62
+
60
63
  cos = cos_similarity(A, B)
61
64
  print(cos)
62
65