python零碎知識點 2019 8 19

2021-09-26 07:14:39 字數 2463 閱讀 9108

乙個元素張量可以用item()得到元素值,請注意這裡的print(x)和print(x.item())值是不一樣的,乙個是列印張量,乙個是列印元素:

x = torch.randn(2,

2)print

(x[1,1

])print

(x[1,1

].item(

))

#結果

tensor(0.4279)

0.4278833866119385

hr = np.random.uniform(0,

2,(10

,10,3

)) 從乙個均勻分布([low, high):半開區間)中進行取樣

# hr = np.random.randn(10,

10,3) 返回乙個樣本,具有標準正太分布

# hr = np.random.rand(10,

10,3) 返回乙個或一組服從「0

~1」均勻分布的隨機樣本值。隨機樣本取值範圍是[0,

1),不包括1。

獲取物件object的屬性或者方法

class

test

: name=

'alex'

defrun

(self)

:pass

t=test(

)print

(getattr

(t,'name'))

#alex

print

(getattr

(t,'run'))

#>

print

(getattr

(t,'age',12

))#12

img = np.random.randn(

100,

100,3)

print

(img.shape)

# 這裡shape不帶括號

print

(img.shape[2]

)print

(img.size)

# 30000

print

(np.size(img,2)

)# 3

print

(img.size[0]

)# typeerror: 'int' object is not subscriptable

#因為size = 30000是乙個整數型別,故不能使用下標來表示;若是list,tuple等型別,則可用下標

#還有一種會出現的情況,一維的陣列卻使用了二維形式的下標;如a=[1],則a[0][0]則報錯

#torch的size用法與numpy不太相同

img1 = torch.randn(3,

100,

100)

print

(img1.shape)

# torch.size([3, 100, 100]) shape不帶括號

print

(img1.shape[2]

)# 100 用法與numpy相同

print

(img1.size())

# torch.size([3, 100, 100]) 此處與numpy不同

print

(img1.size(1)

)# 列印img1第1維的長度

# 此處size和shape的用法相同

torch.reshape(),這個與numpy.reshape 的功能類似.reshape()可以替代view。它大致相當於tensor.contiguous().view()。一般來說可以用reshape替代 .contiguous().view()了

contiguous:view只能用在contiguous的variable上。如果在view之前用了transpose, permute等,需要用contiguous()來返回乙個contiguous copy。

一種可能的解釋是:

有些tensor並不是占用一整塊記憶體,而是由不同的資料塊組成,而tensor的view()操作依賴於記憶體是整塊的,

這時只需要執行contiguous()這個函式,把tensor變成在記憶體中連續分布的形式

a = torch.tensor([1

,2,3

,4,5

,6])

b =a.view(2,

3)# 按照行優先的順序排成乙個一維的資料

c = a.reshape(2,

3)print

(b)print

(c)print

(b.contiguous(

).permute(1,

0))# 維度轉換(轉置),行變成列,列變成行

print

(a.view(3,

2))

零碎知識點

1.反斜槓也可拼接字串 window.nl ad function window.nl ad function 2.在console.log 中新增樣式 var a hello console.log c a,font size 400 background blue color white 3 通...

零碎知識點

比較數值時,不要integer,要int 1,elasticsearch查詢時不識別大寫,應全部轉為小寫.因此建立索引時盡量使用小寫 2.var param param.yanan1 yanan2 此處的用法 param 宣告了json格式的param,param.yanan1 yanan2定義了j...

python零碎知識點 2019 08 16

近來在復現meta sr,寫這系列總結相當於備忘錄,記錄每天遇到的一些python語法知識點,為方便日後不斷複習 小白在成長 a如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。w開啟乙個檔案只用於寫入。如果該檔案已存在則...