Pytorch 常用函數_個人記錄不斷加入

在寫網絡初始設置的,設置以後,之後創建的tensor都默認爲該形式,cpu或者gpu,類型

torch.set_default_tensor_type()

 可選參數:'torch.cuda.FloatTensor'、 'torch.FloatTensor'

--------------------------------------------

1、在你使用固定大小的圖像進行訓練的時候設置爲True,加快訓練速度

import torch.backends.cudnn as cudnn
cudnn.benchmark = True

 上採樣:

1、nn.ConvTranspose2d

逆卷積

(in_channels, out_channels, kernel_size, stride=1,padding=0,output_padding=0, groups=1, bias=True, dilation=1, padding_mode='zeros'):

2、nn.Upsample

  已經有新的了下面的3

源碼提示:warnings.warn("nn.functional.upsample is deprecated. Use nn.functional.interpolate instead.")

3、torch.nn.functional.interpolate(in,, size=size2, scale_factor=2, mode='nearest')

因爲可以輸入尺寸,所以這個可以解決單數在下采樣上採樣與原feature結合尺度不一的問題

input, size=None, scale_factor=None, mode='nearest', align_corners=None, recompute_scale_factor=None

---------------------------------------

1、tensor類型的改變

input = torch.Tensor(3, 5)

newtensor = input.long()
newtensor = input.half()
newtensor = input.int()
newtensor = input.double()
newtensor = input.float()
newtensor = input.short()

newtensor = input.type(torch.FloatTensor)
newtensor = input.type(torch.LongTendor)

2、tensor->numpy

tensor.detach().cpu.numpy()

3、numpy->tensor

torch.from_numpy(input)

 -----------------------------------------

維度變化:

x = torch.squeeze(x)   #張量去除維度爲1的

x = torch.unsqueeze(x, 3)   # 在第3個維度上擴展

x = x.permute(0, 2, 3, 1) # 交換維度,重新排列

x = torch.cat(a, b)  # 拼接

x = x .reshape(batch,-1)    # 改變形狀

x = x.view(batch, -1)   # 改變形狀

----------------------------------------------

新建tensor:

res = torch.zeros_like(input)   返回跟input的tensor一個size的全零tensor

 

----------------------------------------

Class屬性的操作:hasattr()、getattr()、setattr()、分別爲判斷某一個類是否有這個屬性,以及獲取該屬性的值,以及給類是指一個屬性。

class person(object):
    def __init__(self):
        self.name  = 'oo'
        setattr(self, 'age', 15)

P = person()
if hasattr(P, 'sex') is False:
    setattr(P, 'sex', 'femal')
print(getattr(P, 'sex'))
print(getattr(P, 'age'))

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章