溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

在TensorFlow中如何實(shí)現(xiàn)矩陣維度擴(kuò)展

發(fā)布時(shí)間:2020-07-22 15:28:14 來(lái)源:億速云 閱讀:468 作者:小豬 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要為大家展示了在TensorFlow中如何實(shí)現(xiàn)矩陣維度擴(kuò)展,內(nèi)容簡(jiǎn)而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來(lái)看看吧。

一般TensorFlow中擴(kuò)展維度可以使用tf.expand_dims()。近來(lái)發(fā)現(xiàn)另一種可以直接運(yùn)用取數(shù)據(jù)操作符[]就能擴(kuò)展維度的方法。

用法很簡(jiǎn)單,在要擴(kuò)展的維度上加上tf.newaxis就行了。

foo = tf.constant([[1,2,3], [4,5,6], [7,8,9]])
print(foo[tf.newaxis, :, :].eval()) # => [[[1,2,3], [4,5,6], [7,8,9]]]
print(foo[:, tf.newaxis, :].eval()) # => [[[1,2,3]], [[4,5,6]], [[7,8,9]]]
print(foo[:, :, tf.newaxis].eval()) # => [[[1],[2],[3]], [[4],[5],[6]],[[7],[8],[9]]]

參考:

https://tensorflow.google.cn/api_docs/python/tf/Tensor?hl=en#__getitem__

補(bǔ)充知識(shí):tensorflow 利用expand_dims和squeeze擴(kuò)展和壓縮tensor維度

在利用tensorflow進(jìn)行文本挖掘工作的時(shí)候,經(jīng)常涉及到維度擴(kuò)展和壓縮工作。比如對(duì)文本進(jìn)行embedding操作完成之后,若要進(jìn)行卷積操作,就需要對(duì)embedded的向量擴(kuò)展維度,將[batch_size, embedding_dims]擴(kuò)展成為[batch_size, embedding_dims, 1],利用tf.expand_dims(input, -1)就可實(shí)現(xiàn),反過(guò)來(lái)用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位置增加一個(gè)維度.

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

如果要將批量維度添加到單個(gè)元素,則此操作非常有用。 例如,如果您有一個(gè)單一的形狀[height,width,channels],您可以使用expand_dims(image,0)使其成為1個(gè)圖像,這將使形狀[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]

以上就是關(guān)于在TensorFlow中如何實(shí)現(xiàn)矩陣維度擴(kuò)展的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI