質問編集履歴

1

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

2020/06/21 08:53

投稿

Flan.
Flan.

スコア123

test CHANGED
File without changes
test CHANGED
@@ -1,106 +1,12 @@
1
1
  Gradient overflow. Skipping step, loss scaler 0 reducing loss scale to 3.3409558876152446e-52
2
2
 
3
- ド2では大量表示されるのですが
3
+ いうメッセジをoffしたいです やり方わかりません
4
4
 
5
- コード1では表示れません
5
+ わかる人教えてくだ
6
-
7
- 違いといえば 1はforで回してないことですが
8
-
9
- 一回はメッセージ出るはずです おそらく結果が表示されてるのかと思うのですが
10
6
 
11
7
 
12
8
 
13
- なぜコード2だけメッセージが大量に出るのでしょうか わかる人教えてください
14
-
15
- 当然ですが1 はprint()など表示させるようなものを入れた覚えありません
16
-
17
-
18
-
19
- コード1はコード2を切り取って乱数を入れて挙動を試そうと思ってたものです
20
-
21
- コード1
22
-
23
- ```ここに言語を入力
24
-
25
- mainQN = QNetwork(state.shape,action_size).to('cuda:0')
26
-
27
- optimizer = optim.Adam(mainQN.parameters(), lr=learning_rate)
28
-
29
- mainQN, optimizer = amp.initialize(mainQN, optimizer, opt_level="O1")#------------
30
-
31
-
32
-
33
- criterion = nn.MSELoss()
34
-
35
- mainQN.eval()
36
-
37
-
38
-
39
- _1=[torch.ones(1,10).to('cuda:0') for _ in range(100)]
40
-
41
-
42
-
43
- idx=[1,14,5,43]
44
-
45
- inp=torch.cat([_1[i] for i in idx])
46
-
47
- a=mainQN.forward(inp)
48
-
49
- b=torch.randn(1,4).to("cuda:0")
50
-
51
- loss=criterion(a,b)
52
-
53
- loss=loss
54
-
55
- with amp.scale_loss(loss, optimizer) as scaled_loss:
56
-
57
- scaled_loss.backward() # ここを変更
58
-
59
- optimizer.step()
60
-
61
- print(a)
62
-
63
- print("ok")
64
-
65
-
66
-
67
-
68
-
69
-
70
-
71
-
72
-
73
-
74
-
75
-
76
-
77
- 結果
78
-
79
- Gradient overflow. Skipping step, loss scaler 0 reducing loss scale to 32768.0
80
-
81
- tensor([[999.5000],
82
-
83
- [999.5000],
84
-
85
- [999.5000],
86
-
87
- [999.5000]], device='cuda:0', dtype=torch.float16,
88
-
89
- grad_fn=<MulBackward0>)
90
-
91
- ok
92
-
93
- 赤く囲われて表示されてた
94
-
95
- 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.
96
-
97
- return orig_fn(*new_args, **kwargs)
98
-
99
- ```
100
-
101
-
102
-
103
- コード2
9
+ コード
104
10
 
105
11
  ```ここに言語を入力
106
12