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

質問編集履歴

1

こーど2もおかしくなった

2020/06/21 08:53

投稿

Flan.
Flan.

スコア123

title CHANGED
File without changes
body CHANGED
@@ -1,60 +1,13 @@
1
1
  Gradient overflow. Skipping step, loss scaler 0 reducing loss scale to 3.3409558876152446e-52
2
- とコード2では大量に表示されるのですが
3
- コード1では表示されません
4
- 違いといえば 1はforで回してないことですが
5
- 一回はメッセージ出るはずです おそらく結果表示されてるのと思うのですが
2
+ というメッセージをoffにしたいです やり方りません
3
+ わかる人教えてください
6
4
 
7
- なぜコード2だけメッセージが大量に出るのでしょうか わかる人教えてください
8
- 当然ですが1 はprint()など表示させるようなものを入れた覚えありません
9
-
10
- コード1はコード2を切り取って乱数を入れて挙動を試そうと思ってたものです
11
- コード
5
+ コード
12
6
  ```ここに言語を入力
13
7
  mainQN = QNetwork(state.shape,action_size).to('cuda:0')
14
8
  optimizer = optim.Adam(mainQN.parameters(), lr=learning_rate)
15
9
  mainQN, optimizer = amp.initialize(mainQN, optimizer, opt_level="O1")#------------
16
10
 
17
- criterion = nn.MSELoss()
18
- mainQN.eval()
19
-
20
- _1=[torch.ones(1,10).to('cuda:0') for _ in range(100)]
21
-
22
- idx=[1,14,5,43]
23
- inp=torch.cat([_1[i] for i in idx])
24
- a=mainQN.forward(inp)
25
- b=torch.randn(1,4).to("cuda:0")
26
- loss=criterion(a,b)
27
- loss=loss
28
- with amp.scale_loss(loss, optimizer) as scaled_loss:
29
- scaled_loss.backward() # ここを変更
30
- optimizer.step()
31
- print(a)
32
- print("ok")
33
-
34
-
35
-
36
-
37
-
38
-
39
- 結果
40
- Gradient overflow. Skipping step, loss scaler 0 reducing loss scale to 32768.0
41
- tensor([[999.5000],
42
- [999.5000],
43
- [999.5000],
44
- [999.5000]], device='cuda:0', dtype=torch.float16,
45
- grad_fn=<MulBackward0>)
46
- ok
47
- 赤く囲われて表示されてた
48
- C:\Users\PC_User\Anaconda3\envs\pyflan\lib\site-packages\apex\amp\wrap.py:28: UserWarning: Using a target size (torch.Size([1, 4])) that is different to the input size (torch.Size([4, 1])). This will likely lead to incorrect results due to broadcasting. Please ensure they have the same size.
49
- return orig_fn(*new_args, **kwargs)
50
- ```
51
-
52
- コード2
53
- ```ここに言語を入力
54
- mainQN = QNetwork(state.shape,action_size).to('cuda:0')
55
- optimizer = optim.Adam(mainQN.parameters(), lr=learning_rate)
56
- mainQN, optimizer = amp.initialize(mainQN, optimizer, opt_level="O1")#------------
57
-
58
11
  mainQN.train()
59
12
  optimizer.zero_grad()
60
13
  output = mainQN.forward(inputs,"net_q")