欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pytorch之擴充tensor的操作

 更新時間:2021年03月04日 16:12:29   作者:有為少年  
這篇文章主要介紹了Pytorch之擴充tensor的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,大家還是直接看代碼吧~

b = torch.zeros((3, 2, 6, 6))
a = torch.zeros((3, 2, 1, 1))
a.expand_as(b).size()
Out[32]: torch.Size([3, 2, 6, 6])
a = torch.zeros((3, 2, 2, 1))
a.expand_as(b).size()
Traceback (most recent call last):
 File "/home/lart/.conda/envs/pt/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 3267, in run_code
  exec(code_obj, self.user_global_ns, self.user_ns)
 File "<ipython-input-34-972575f79e92>", line 1, in <module>
  a.expand_as(b).size()
RuntimeError: The expanded size of the tensor (6) must match the existing size (2) at non-singleton dimension 2. Target sizes: [3, 2, 6, 6]. Tensor sizes: [3, 2, 2, 1]
a = torch.zeros((3, 2, 1, 2))
a.expand_as(b).size()
Traceback (most recent call last):
 File "/home/lart/.conda/envs/pt/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 3267, in run_code
  exec(code_obj, self.user_global_ns, self.user_ns)
 File "<ipython-input-36-972575f79e92>", line 1, in <module>
  a.expand_as(b).size()
RuntimeError: The expanded size of the tensor (6) must match the existing size (2) at non-singleton dimension 3. Target sizes: [3, 2, 6, 6]. Tensor sizes: [3, 2, 1, 2]
a = torch.zeros((3, 2, 2, 2))
a.expand_as(b).size()
Traceback (most recent call last):
 File "/home/lart/.conda/envs/pt/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 3267, in run_code
  exec(code_obj, self.user_global_ns, self.user_ns)
 File "<ipython-input-38-972575f79e92>", line 1, in <module>
  a.expand_as(b).size()
RuntimeError: The expanded size of the tensor (6) must match the existing size (2) at non-singleton dimension 3. Target sizes: [3, 2, 6, 6]. Tensor sizes: [3, 2, 2, 2]
a = torch.zeros((3, 2, 6, 2))
a.expand_as(b).size()
Traceback (most recent call last):
 File "/home/lart/.conda/envs/pt/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 3267, in run_code
  exec(code_obj, self.user_global_ns, self.user_ns)
 File "<ipython-input-40-972575f79e92>", line 1, in <module>
  a.expand_as(b).size()
RuntimeError: The expanded size of the tensor (6) must match the existing size (2) at non-singleton dimension 3. Target sizes: [3, 2, 6, 6]. Tensor sizes: [3, 2, 6, 2]
a = torch.zeros((3, 2, 6, 1))
a.expand_as(b).size()
Out[44]: torch.Size([3, 2, 6, 6])
a = torch.zeros((3, 2, 1, 6))
a.expand_as(b).size()
Out[46]: torch.Size([3, 2, 6, 6])

tensor.expand_as在這里用于擴展tensor到目標形狀,常用的多是在H和W方向上的擴展。

假設(shè)目標形狀為N, C, H, W,則要求tensor.size()=n, c, h, w(這里假設(shè)N,C不變):

1、h=w=1

2、h=1, w!=1

3、h!=1, w=1

補充:tensorflow 利用expand_dims和squeeze擴展和壓縮tensor維度

在利用tensorflow進行文本挖掘工作的時候,經(jīng)常涉及到維度擴展和壓縮工作。

比如對文本進行embedding操作完成之后,若要進行卷積操作,就需要對embedded的向量擴展維度,將[batch_size, embedding_dims]擴展成為[batch_size, embedding_dims, 1],利用tf.expand_dims(input, -1)就可實現(xiàn),反過來用squeeze(input, -1)或者tf.squeeze(input)也可以把最第三維去掉。

tf.expand_dims()

tf.squeeze()

tf.expand_dims()

tf.expand_dims(input, axis=None, name=None, dim=None)

在第axis位置增加一個維度.

給定張量輸入,此操作在輸入形狀的維度索引軸處插入1的尺寸。 尺寸索引軸從零開始; 如果您指定軸的負數(shù),則從最后向后計數(shù)。

如果要將批量維度添加到單個元素,則此操作非常有用。 例如,如果您有一個單一的形狀[height,width,channels],您可以使用expand_dims(image,0)使其成為1個圖像,這將使形狀[1,高度,寬度,通道]。

例子

# 't' is a tensor of shape [2]
shape(expand_dims(t, 0)) ==> [1, 2]
shape(expand_dims(t, 1)) ==> [2, 1]
shape(expand_dims(t, -1)) ==> [2, 1]
# 't2' is a tensor of shape [2, 3, 5]
shape(expand_dims(t2, 0)) ==> [1, 2, 3, 5]
shape(expand_dims(t2, 2)) ==> [2, 3, 1, 5]
shape(expand_dims(t2, 3)) ==> [2, 3, 5, 1]

tf.squeeze()

tf.squeeze(input, axis=None, name=None, squeeze_dims=None)

直接上例子

# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
 shape(squeeze(t)) ==> [2, 3]
# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
 shape(squeeze(t, [2, 4])) ==> [1, 2, 3, 1]

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Python命令行定時任務(wù)自動化工作流程

    Python命令行定時任務(wù)自動化工作流程

    本文介紹如何使用Python編寫定時任務(wù),以自動執(zhí)行命令行任務(wù)。您將學習如何安排定期的任務(wù),處理任務(wù)結(jié)果,以及如何使用Python自動化工作流程,從而提高工作效率。無需手動執(zhí)行重復任務(wù),Python幫您搞定
    2023-04-04
  • python石頭剪刀布小游戲(三局兩勝制)

    python石頭剪刀布小游戲(三局兩勝制)

    這篇文章主要為大家詳細介紹了python石頭剪刀布小游,三局兩勝制,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • python之import機制詳解

    python之import機制詳解

    這篇文章主要介紹了python的import機制,需要的朋友可以參考下
    2014-07-07
  • Python?ArcPy實現(xiàn)批量對大量遙感影像相減做差

    Python?ArcPy實現(xiàn)批量對大量遙感影像相減做差

    這篇文章主要為大家介紹了如何基于Python中ArcPy模塊實現(xiàn)對大量柵格遙感影像文件批量進行相減做差,文中的示例代碼講解詳細,感興趣的可以了解一下
    2023-06-06
  • python類型強制轉(zhuǎn)換long to int的代碼

    python類型強制轉(zhuǎn)換long to int的代碼

    python的int型最大值和系統(tǒng)有關(guān),32位和64位系統(tǒng)結(jié)果是不同的,分別為2的31次方減1和2的63次方減1,可以通過sys.maxint查看此值
    2013-02-02
  • Iconfont(矢量圖標)+iconmoon(圖標svg互轉(zhuǎn))配合javascript實現(xiàn)社交分享系統(tǒng)

    Iconfont(矢量圖標)+iconmoon(圖標svg互轉(zhuǎn))配合javascript實現(xiàn)社交分享系統(tǒng)

    這篇文章主要介紹了Iconfont(矢量圖標)+iconmoon(圖標svg互轉(zhuǎn))配合javascript實現(xiàn)社交分享系統(tǒng),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • pandas之query方法和sample隨機抽樣操作

    pandas之query方法和sample隨機抽樣操作

    這篇文章主要介紹了pandas之query方法和sample隨機抽樣操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python淺析生成器generator的使用

    Python淺析生成器generator的使用

    生成器generator在循環(huán)過程中,按照某種算法推算數(shù)據(jù),不必創(chuàng)建容器存儲完整的結(jié)果,從而節(jié)省內(nèi)存空間。數(shù)據(jù)量越大,優(yōu)勢越明顯。以上作用也稱之為延遲操作或惰性操作,通俗的講就是在需要的時候才計算結(jié)果,而不是一次構(gòu)建出所有結(jié)果
    2022-07-07
  • Python Dataframe 指定多列去重、求差集的方法

    Python Dataframe 指定多列去重、求差集的方法

    今天小編就為大家分享一篇Python Dataframe 指定多列去重、求差集的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python 實現(xiàn)堆排序算法代碼

    python 實現(xiàn)堆排序算法代碼

    python 實現(xiàn)堆排序算法代碼,需要的朋友可以參考下
    2012-06-06

最新評論