teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

修正

2020/09/03 08:31

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -17,7 +17,7 @@
17
17
  # forward + backward + optimize
18
18
  outputs = model(inputs)
19
19
  loss = criterion(outputs, labels)
20
- epoch_loss.append(loss)
20
+ epoch_loss.append(float(loss))
21
21
 
22
22
  losses.append(np.mean(epoch_loss)) # そのエポックの損失の平均を記録
23
23
  ```

2

修正

2020/09/03 08:31

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -8,7 +8,7 @@
8
8
  losses = []
9
9
 
10
10
  for epoch in range(300): # loop over the dataset multiple times
11
- epoch_loss = 0
11
+ epoch_loss = []
12
12
  for i, data in enumerate(train_loader, 0):
13
13
  # get the inputs; data is a list of [inputs, labels]
14
14
  inputs, labels = data[0].to(device), data[1].to(device)
@@ -17,9 +17,9 @@
17
17
  # forward + backward + optimize
18
18
  outputs = model(inputs)
19
19
  loss = criterion(outputs, labels)
20
- epoch_loss += loss
20
+ epoch_loss.append(loss)
21
-
21
+
22
- losses.append(epoch_loss.mean()) # そのエポックの損失の平均を記録
22
+ losses.append(np.mean(epoch_loss)) # そのエポックの損失の平均を記録
23
23
  ```
24
24
 
25
25
  最後に以下を実行

1

修正

2020/09/03 08:14

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  > 学習曲線(lossの値をepochごとにプロットしたグラフ)を作っていったん学習を見てみようと思うのですが、どのように実装すればいいのでしょうか...?
2
2
 
3
- エポックごとにそのエポックの loss の平均を記録して、あとから matplotlib で描画すればよいと思います。
3
+ エポックごとにそのエポックの loss の平均を計算、それをリストに追加しいって、あとから matplotlib で描画すればよいと思います。
4
4
 
5
5
  変更箇所一部抜粋
6
6