【tensorflow】tf.reshape函数说明:重塑张量
轉(zhuǎn)載
[471]tf.reshape函數(shù)說(shuō)明_周小董-CSDN博客 https://blog.csdn.net/xc_zhou/article/details/85342542
函數(shù)原型:
tf.reshape(tensor,shape,name=None )功能:改變張量(tensor)的形狀。
tensor形參傳入一個(gè)tensor。shape傳入一個(gè)向量,代表新tensor的維度數(shù)和每個(gè)維度的長(zhǎng)度。如果傳入[3,4,5],就會(huì)返回一個(gè)內(nèi)含各分量數(shù)值和原傳入張量 一模一樣的3 *4 *5尺寸的張量。
如果shape傳入的向量某一個(gè)分量設(shè)置為-1,比如[-1,4,5],那么這個(gè)分量代表的維度尺寸會(huì)被自動(dòng)計(jì)算出來(lái)。
用法一,一個(gè)尺寸為1 * 9的張量轉(zhuǎn)化為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]]用法二,一個(gè)尺寸為3 * 2 * 3的張量,轉(zhuǎn)換為第二個(gè)維度尺寸為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被計(jì)算為2。
用法三,僅含有單個(gè)元素的張量轉(zhuǎn)化為標(biāo)量:
t為張量[7]
第二篇轉(zhuǎn)載
下文為CSDN博主「csdn0006」的原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/csdn0006/article/details/106238909
用法
tf.reshape函數(shù)用于對(duì)輸入tensor進(jìn)行維度調(diào)整,但是這種調(diào)整方式并不會(huì)修改內(nèi)部元素的數(shù)量以及元素之間的順序,換句話(huà)說(shuō),reshape函數(shù)不能實(shí)現(xiàn)類(lèi)似于矩陣轉(zhuǎn)置的操作。
比如,對(duì)于矩陣[[1,2,3],[4,5,6]],如果使用reshape,將維度變?yōu)閇3,2], 其輸出結(jié)果為:[[1,2],[3,4],[5,6]], 元素之間的順序并沒(méi)有改變:1之后還是2,
如果是矩陣轉(zhuǎn)置操作,1之后應(yīng)該為4。
tf.reshape不會(huì)更改張量中元素的順序或總數(shù),因此可以重用基礎(chǔ)數(shù)據(jù)緩沖區(qū)。這使得它快速運(yùn)行,而與要運(yùn)行的張量有多大無(wú)關(guān)。
如果需要修改張量的維度來(lái)實(shí)現(xiàn)對(duì)元素重新排序,需要使用tf.transpose。
總結(jié)
關(guān)于tf.reshape函數(shù)我們需要知道的是:
1.函數(shù)用于張量維度調(diào)整,但是不會(huì)修改內(nèi)部元素的數(shù)量以及相對(duì)順序
2.shape中-1表示這個(gè)維度的大小,程序運(yùn)行時(shí)會(huì)自動(dòng)計(jì)算填充(因?yàn)樽儞Q前后元素?cái)?shù)量不變,我們可以根據(jù)其他維度的大小,最終確定-1這個(gè)位置應(yīng)該表示的數(shù)字)
3.如果需要通過(guò)修改內(nèi)部元素的存儲(chǔ)順序以實(shí)現(xiàn)維度調(diào)整,需要使用tf.transpose函數(shù)
總結(jié)
以上是生活随笔為你收集整理的【tensorflow】tf.reshape函数说明:重塑张量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 深度学习TensorFlow取名由来,张
- 下一篇: 【tensorflow】全连接层函数tf