天天看點

最近看了Light-GCN的項目,記錄了一些裡面用到的api

dataframe.iloc是按位置進行選擇資料,是以參數是整型

list中extend和append的差别:

append會添加a這個整體

extend會把a中的各個元素分開,a的内容被不再是一個整體

csr_matrix三個參數,第一個是資料,第二個是行和列的坐标,第三個參數是矩陣形狀

tensor.coalesce():對邊索引進行排序并移除備援項

scipy.sparse.dok_matrix(n,m):生成(n, m)shape的矩陣,這是一種基于稀疏矩陣的鍵字典

torch.rand()平均分布

torch.randn是正态分布

torch.sparse.FloatTensor是建構稀疏張良,index和values是一一對應的關系,最後一個參數是size

spmatrix.tocoo(self, copy=False):将此矩陣轉換為坐标格式,得到(data, (row, col))

row指行

col指列

torch.stack():沿着一個新次元對輸入張量序列進行連接配接。序列中所有的張量都應該為相同形狀。(eg:把多個2維張量湊成一個3維張量;多個3維張量湊成一個4維張量,就是增加新的次元進行堆疊)

eg:

a = np.array([[0, 2, 3], [0, 0, 0], [0, 0, 9]])
b = np.array([[1, 1, 1], [1, 2, 3], [5, 6, 7]])
print("a:", a)
print("b:", b)
a = torch.Tensor(a)
b = torch.Tensor(b)
c = torch.stack([a, b], dim=1)
print(c)
c = torch.mean(c, dim=1)
print(c)

a: [[0 2 3]
 [0 0 0]
 [0 0 9]]
b: [[1 1 1]
 [1 2 3]
 [5 6 7]]
tensor([[[0., 2., 3.],
         [1., 1., 1.]],

        [[0., 0., 0.],
         [1., 2., 3.]],

        [[0., 0., 9.],
         [5., 6., 7.]]])
tensor([[0.5000, 1.5000, 2.0000],
        [0.5000, 1.0000, 1.5000],
        [2.5000, 3.0000, 8.0000]])

           

torch.sparse.FloatTensor(index, data, shape):建立類型為FloatTensor的稀疏張量,index是行列索引,data是對應位置上的資料。

matrix.tolil():将矩陣轉換成list(清單)的形式

numpy.unique():查找數組的唯一進制素(去重)并排序

torch.nn.init.uniform_():均勻分布

torch.nn.init.normal_():正态分布

torch.nn.init.constant_():常數、固定值

torch.nn.init.eye_():對角線為1,其他為0

torch.nn.init.sparse_():稀疏矩陣,非零元素采用正太分布

np.isinf():判斷是否有正負無窮

sp.diags():轉換為對角矩陣

torch.split():将張量分割成塊,每個塊都是原始張量的一個視圖。

>>> a = torch.arange(10).reshape(5,2)
>>> a
tensor([[0, 1],
[2, 3],
[4, 5],
[6, 7],
[8, 9]])
>>> torch.split(a, 2)
(tensor([[0, 1],
[2, 3]]),
tensor([[4, 5],
[6, 7]]),
tensor([[8, 9]]))
>>> torch.split(a, [1,4])
(tensor([[0, 1]]),
tensor([[2, 3],
[4, 5],
[6, 7],
[8, 9]]))
           

torch.mean():傳回輸入張量中所有元素的平均值,可以選次元,

eg;

>>> a = torch.randn(1, 3)
>>> a
tensor([[ 0.2294, -0.5481,  1.3288]])
>>> torch.mean(a)
tensor(0.3367)