回答編集履歴
3
説明の追加
test
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
|
2
2
|
[CrossEntropyErrorについて](https://teratail.com/questions/367808)
|
3
|
-
にも書きましたけど、PyTorchのCrossEntropyLossは予測値をソフトマックス処理するので、
|
3
|
+
にも書きましたけど、PyTorchのCrossEntropyLossは予測値をソフトマックス処理するので、質問の「# PyTorchのカテゴリカル交差エントロピー関数」と等価な式はこんな感じになると思います
|
4
4
|
```python
|
5
5
|
loss = torch.mean(torch.sum(-t * torch.t(torch.t(y) - torch.log(torch.sum(torch.exp(y), dim=1))), dim=1))
|
6
6
|
print(loss)
|
7
7
|
## tensor(1.4425)
|
8
8
|
```
|
9
|
+
|
10
|
+
質問の「# Pythonコード」がソフトマックス処理無しの場合です
|
9
11
|
|
10
12
|
|
11
13
|
なお、当方のMacの環境
|
2
表現の変更
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
|
2
2
|
[CrossEntropyErrorについて](https://teratail.com/questions/367808)
|
3
|
-
にも書きましたけど、PyTorchのCrossEntropyLossは予測値をソフトマックス処理するので、こういう計算
|
3
|
+
にも書きましたけど、PyTorchのCrossEntropyLossは予測値をソフトマックス処理するので、こういう計算と等価になると思います
|
4
4
|
```python
|
5
5
|
loss = torch.mean(torch.sum(-t * torch.t(torch.t(y) - torch.log(torch.sum(torch.exp(y), dim=1))), dim=1))
|
6
6
|
print(loss)
|
1
表現の変更
test
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
+
|
2
|
+
[CrossEntropyErrorについて](https://teratail.com/questions/367808)
|
3
|
+
にも書きましたけど、PyTorchのCrossEntropyLossは予測値をソフトマックス処理するので、こういう計算をしてると思います
|
1
4
|
```python
|
2
5
|
loss = torch.mean(torch.sum(-t * torch.t(torch.t(y) - torch.log(torch.sum(torch.exp(y), dim=1))), dim=1))
|
3
6
|
print(loss)
|
4
7
|
## tensor(1.4425)
|
5
8
|
```
|
6
|
-
参考
|
7
|
-
[CrossEntropyErrorについて](https://teratail.com/questions/367808)
|
8
9
|
|
9
10
|
|
10
11
|
なお、当方のMacの環境
|