質問編集履歴
1
こーど2もおかしくなった
    
        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")
         
     |