pytorch tensor 篩選排除

2021-10-03 17:11:43 字數 783 閱讀 4890

篩選排除還沒找到答案:

取數運算

正好遇到乙個需求。

我有m行k列的乙個表a,和乙個長為m的索引列表b。

b中儲存著,取每行第幾列的元素。

這種情況下,你用普通的索引是會失效的。

import torch

a= torch.longtensor([[1,2,3],[4,5,6]])

b= torch.longtensor([0,1])

錯誤寫法:

c= a[b]

print(c)

結果是第1行和第2行

方法1:

import torch

conf_data = torch.longtensor([[1, 2, 3], [4, 5, 6]])

b = torch.longtensor([0, 1])

index_num = torch.arange(0, conf_data.size(0))

print(conf_data[index_num,b])

經過一番查詢,發現我們可以用神奇的torch.gather()函式

import torch

a= torch.longtensor([[1,2,3],[4,5,6]])

b= torch.longtensor([0,1]).view(2,1)

c= torch.gather(input=a,dim=1,index=b)

print(c)

#tensor([[1],

[5]])

Pytorch Tensor和tensor的區別

在pytorch中,tensor和tensor都能用於生成新的張量 a torch.tensor 1 2 a tensor 1 2.a torch.tensor 1 2 a tensor 1 2 首先,我們需要明確一下,torch.tensor 是python類,更明確地說,是預設張量型別torch...

Pytorch tensor的感知機

單層感知機的主要步驟 單層感知機梯度的推導 要進行優化的是w,對w進行梯度下降 a torch.randn 1,10 a是乙個 1,10 的向量 w torch.randn 1,10,requires grad true w是乙個可導的 1,10 的向量 1.2.經過乙個sigmoid啟用函式 o ...

pytorch tensor 獲得中間節點的梯度

我們只能指定計算圖的leaf節點的requires grad變數來決定改變量是否記錄梯度,而不能指定它們運算產生的節點的requires grad,它們是否要梯度取決於它們的輸入節點,它們的輸入節點只要有乙個requires grad是true,那麼它的requires grad也是true.x t...