簡體   English   中英

張量流中的外加和減法

[英]Outer addition and subtraction in tensorflow

一個等效的操作(或一系列操作)是否像numpy外部函數一樣?

import numpy as np

a = np.arange(3)
b = np.arange(5)

print np.subtract.outer(a,b)

[[ 0 -1 -2 -3 -4]
 [ 1  0 -1 -2 -3]
 [ 2  1  0 -1 -2]]

明顯的候選人tf.sub似乎只是元素行為。

使用廣播:

sess.run(tf.transpose([tf.range(3)]) - tf.range(5))

產量

array([[ 0, -1, -2, -3, -4],
       [ 1,  0, -1, -2, -3],
       [ 2,  1,  0, -1, -2]], dtype=int32)

更具體地說,給定(3, 1)(1, 5)陣列,廣播在數學上等同於將陣列平鋪成匹配(3, 5)形狀並逐點操作

在此輸入圖像描述

此切片通過循環現有數據在內部實現,因此不需要額外的內存。 當給出具有(3, 1)(5)形狀的不等等級時,廣播將填充較小的形狀, 左邊1's 這意味着像tf.range(5)這樣的1D列表被視為行向量,相當於[tf.range(5)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM