Python3 Tensorlfow:增加或者減小矩陣維度的實(shí)現(xiàn)
1.增加維度
下面給出兩個樣例
樣例1:
[1, 2, 3] ==> [[1],[2],[3]]
import tensorflow as tf
a = tf.constant([1, 2, 3])
b = tf.expand_dims(a,1)
with tf.Session() as sess:
a_, b_ = sess.run([a, b])
print('a:')
print(a_)
print('b:')
print(b_)
輸出結(jié)果
a: [1 2 3] b: [[1] [2] [3]]
樣例2:
[1, 2, 3] ==> [[1,2,3]]
import tensorflow as tf
a = tf.constant([1, 2, 3])
b = tf.expand_dims(a, 0)
with tf.Session() as sess:
a_, b_ = sess.run([a, b])
print('a:')
print(a_)
print('b:')
print(b_)
輸出結(jié)果:
a: [1 2 3] b: [[1 2 3]]
2.降低維度
樣例1:
[[1, 2, 3]] ==> [1, 2, 3]
import tensorflow as tf
a = tf.constant([[1, 2, 3]])
b = tf.squeeze(a)
with tf.Session() as sess:
a_, b_ = sess.run([a, b])
print('a:')
print(a_)
print('b:')
print(b_)
輸出結(jié)果
a: [[1 2 3]] b: [1 2 3]
樣例2:
[[1], [2], [3]] ==> [[1, 2, 3]
import tensorflow as tf
a = tf.constant([[1], [2], [3]])
b = tf.squeeze(a, 1)
with tf.Session() as sess:
a_, b_ = sess.run([a, b])
print('a:')
print(a_)
print('b:')
print(b_)
補(bǔ)充知識:pytorch中squeeze()、unsqueeze(),以及一些高維數(shù)組操作
博主最近閱讀YOLO底層代碼,Torch中對多數(shù)組矩陣有很多高維操作,看過一邊之后,記錄一下,以防忘記。
torch.squeeze()
功能:取消為1的維度
squeeze(input, dim=None, out=None) -> Tensor
這里一般分不清dim的意思
舉個例子:
input=(A , 1 , B , C ,1 , D) squeeze(input)=(A,B,C,D) input= (A, 1, B)
squeeze(input, 0)=(A, 1, B) 不會改變 squeeze(input, 1)=(A, B) 會改變

這里0, 1 ,2就分別代表 A, 1, B
torch.unsqueeze()
unsqueeze(input, dim, out=None) -> Tensor
功能: 在某一位置插入一維
這里面也是dim這個參數(shù)比較難理解
dim的取值是[- input.dim()-1, imput.dim()]
給定一個dim
input=(A , B , C , D)
input的維度input_dim為4, dim的取值[-5, 4]
unsqueeze(input, 0)=(1, A , B , C , D) unsqueeze(input, 1)=(A , 1, B , C , D) unsqueeze(input, -5)=(1, A , B , C , D)

看一個簡單用例,size表示維度大小,10是取值范圍,a=[:,:,:,4]表示取a最后一維的第四個元素(從0開始第四個),即取[0,0,3],[5,6,1],[0,6,8],[…], 判斷大于5為true,否則為false。
注意:b的維度比a少了一維。

繼續(xù)上一步,這里使用unsqueeze函數(shù)將b的維度擴(kuò)展一維[2,2,3]------>[2,2,3,1] 這時b的最后一維只有一個元素, .expand_as將最后最后的元素擴(kuò)展到a最后一維的個數(shù)
a[c] 表示取出為True的所有行在a中的元素

以上這篇Python3 Tensorlfow:增加或者減小矩陣維度的實(shí)現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python和perl實(shí)現(xiàn)批量對目錄下電子書文件重命名的代碼分享
這篇文章主要介紹了Python和perl實(shí)現(xiàn)批量對目錄下電子書文件重命名的代碼分享,本文同時給出了Python和perl兩種語言的實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-11-11
python實(shí)現(xiàn)自動化報表功能(Oracle/plsql/Excel/多線程)
這篇文章主要介紹了python實(shí)現(xiàn)自動化報表(Oracle/plsql/Excel/多線程)的相關(guān)知識,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12
Python+OpenCV實(shí)戰(zhàn)之實(shí)現(xiàn)文檔掃描
這篇文章主要為大家詳細(xì)介紹了Python+Opencv如何實(shí)現(xiàn)文檔掃描的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-09-09
Python批量解壓文件中出現(xiàn)中文亂碼的原因及解決方法
這篇文章主要給大家記一次Python批量解壓文件遇中文亂碼及解決過程,文中有詳細(xì)的圖解及代碼示例,具有一定的參考價值,需要的朋友可以參考下2023-08-08
python PIL模塊與隨機(jī)生成中文驗(yàn)證碼
今天我們要學(xué)習(xí)的內(nèi)容是如何利用Python生成一個隨機(jī)的中文驗(yàn)證碼,并將圖片保存為.jpeg格式,需要的朋友可以參考下2016-02-02
Python_查看sqlite3表結(jié)構(gòu),查詢語句的示例代碼
今天小編就為大家分享一篇Python_查看sqlite3表結(jié)構(gòu),查詢語句的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
深入淺析pycharm中 Make available to all projects的含義
這篇文章主要介紹了pycharm中 Make available to all projects的含義,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09

