【tensorflow】tf.reshape函数说明:重塑张量
轉載
[471]tf.reshape函數說明_周小董-CSDN博客 https://blog.csdn.net/xc_zhou/article/details/85342542
函數原型:
tf.reshape(tensor,shape,name=None )功能:改變張量(tensor)的形狀。
tensor形參傳入一個tensor。shape傳入一個向量,代表新tensor的維度數和每個維度的長度。如果傳入[3,4,5],就會返回一個內含各分量數值和原傳入張量 一模一樣的3 *4 *5尺寸的張量。
如果shape傳入的向量某一個分量設置為-1,比如[-1,4,5],那么這個分量代表的維度尺寸會被自動計算出來。
用法一,一個尺寸為1 * 9的張量轉化為3 * 3的張量
# tensor 't' is [1, 2, 3, 4, 5, 6, 7, 8, 9] # tensor 't' has shape [9] reshape(t, [3, 3]) ==> [[1, 2, 3],[4, 5, 6],[7, 8, 9]]用法二,一個尺寸為3 * 2 * 3的張量,轉換為第二個維度尺寸為9的張量,即n * 9的張量:
reshape(t, [-1, 9]) ==> [[1, 1, 1, 2, 2, 2, 3, 3, 3],[4, 4, 4, 5, 5, 5, 6, 6, 6]]顯然,n被計算為2。
用法三,僅含有單個元素的張量轉化為標量:
t為張量[7]
第二篇轉載
下文為CSDN博主「csdn0006」的原創文章,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/csdn0006/article/details/106238909
用法
tf.reshape函數用于對輸入tensor進行維度調整,但是這種調整方式并不會修改內部元素的數量以及元素之間的順序,換句話說,reshape函數不能實現類似于矩陣轉置的操作。
比如,對于矩陣[[1,2,3],[4,5,6]],如果使用reshape,將維度變為[3,2], 其輸出結果為:[[1,2],[3,4],[5,6]], 元素之間的順序并沒有改變:1之后還是2,
如果是矩陣轉置操作,1之后應該為4。
tf.reshape不會更改張量中元素的順序或總數,因此可以重用基礎數據緩沖區。這使得它快速運行,而與要運行的張量有多大無關。
如果需要修改張量的維度來實現對元素重新排序,需要使用tf.transpose。
總結
關于tf.reshape函數我們需要知道的是:
1.函數用于張量維度調整,但是不會修改內部元素的數量以及相對順序
2.shape中-1表示這個維度的大小,程序運行時會自動計算填充(因為變換前后元素數量不變,我們可以根據其他維度的大小,最終確定-1這個位置應該表示的數字)
3.如果需要通過修改內部元素的存儲順序以實現維度調整,需要使用tf.transpose函數
總結
以上是生活随笔為你收集整理的【tensorflow】tf.reshape函数说明:重塑张量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习TensorFlow取名由来,张
- 下一篇: 家里的哪些电器其实可以用网购代替?