質問編集履歴
2
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
pytorchでdeep learningの画像分類モデルを作成しています。
|
|
3
3
|
|
|
4
4
|
モデルのloss関数の一部にtorch.sqrt()をしようしたところ、backward時にnanが発生する問題に突き当たりました。
|
|
5
|
-
torch.sqrt()に入力されるベクトルの要素の大きさがとても小さいことが原因のようです。
|
|
5
|
+
torch.sqrt()に入力されるベクトルの要素の大きさがとても小さいことが原因のようです。
|
|
6
|
+
|
|
7
|
+
torch.sqrt()のinputが小さいとbackward時に1/(2*torch.sqrt())がinfになるようです...
|
|
8
|
+
|
|
9
|
+
何か対処法がわかる方がいらっしゃいましたら、お教えいただければ幸いです。
|
|
6
10
|
```
|
|
7
11
|
エラーメッセージ
|
|
8
12
|
Traceback (most recent call last):
|
1
関数の説明を追加
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -28,4 +28,6 @@
|
|
|
28
28
|
epsilon = torch.ones(v4_ema.size(0)) * 1e-10
|
|
29
29
|
epsilon = epsilon.cuda()
|
|
30
30
|
return (v2/(torch.sqrt(v4_ema)+epsilon)).sum()/v4_ema.size(0), v4_ema
|
|
31
|
-
```
|
|
31
|
+
```
|
|
32
|
+
また上記の関数new_normは以下の式を求めようとして作成したものです。
|
|
33
|
+

|