

tensor型の配列のインデックスを取得したいのですが，うまくいかず，教えて頂きたいです．以下のような形になっており，最大要素1がある場所だけを抽出したいです．

[code]

    tensor([[1., 0., 0., 0., 0., 0.],  →この場合は0を
        [1., 0., 0., 0., 0., 0.],
        [1., 0., 0., 0., 0., 0.],
        ...,
        [0., 0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 0., 0.]])　　→この場合は2を
    
[/code]

コード  

[code]

    import numpy as np
    import torch                                                                                   
    npzfile = np.load("C:/Users/namae/Desktop/myo-python-1.0.4/myo-armband-nn-master/data/train_set.npz")
    x = npzfile['x']
    y = npzfile['y']                                                                                     
    x = x.astype(np.float32)
    x = torch.from_numpy(x).clone()
    x = torch.tensor(x)
    x = x.clone().detach()
    y = y.astype(np.float32)
    y = torch.from_numpy(y).clone()
    print(y)
    
[/code]


CC BY-SA 4.0
2020-11-13T05:38:11.823
71915
2022-08-12T16:03:30.370
2020-11-13T05:43:14.020
41671
41671
question
python numpy pytorch
tensor配列の要素のある場所を取得したいです．

[code]

    x = torch.tensor([[1., 0., 0., 0., 0., 0.],
        [1., 0., 0., 0., 0., 0.],
        [1., 0., 0., 0., 0., 0.],
        [0., 0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 0., 0.]])
    
    x.max(dim=1)[1]
    # tensor([0, 0, 0, 2, 2, 2])
    
[/code]


CC BY-SA 4.0
2020-11-13T06:12:52.013
71917
2020-11-13T06:12:52.013
39819
71915
answer


[`argmax()`](https://pytorch.org/docs/stable/generated/torch.argmax.html)を使いましょう。

[code]

    x = torch.tensor([[1., 0., 0., 0., 0., 0.],
                      [1., 0., 0., 0., 0., 0.],
                      [1., 0., 0., 0., 0., 0.],
                      [0., 0., 1., 0., 0., 0.],
                      [0., 0., 1., 0., 0., 0.],
                      [0., 0., 1., 0., 0., 0.]])
    
    x.argmax(1)
    # tensor([0, 0, 0, 2, 2, 2])
    
[/code]


CC BY-SA 4.0
2020-11-13T07:37:58.687
71922
2020-11-13T07:37:58.687
37167
71915
answer