2017-07-27 85 views
0

我知道有一种方法可以像这样对张量进行元素运算。tensorflow:更高维的元素减法

// x is a 4d tensor 
y = x - 1 

但是是相同的可能,如果,例如,一个图4d张量(MxNxVxW)由1维(M)张量中减去,使得对于在所述(M)的每一个值张量相应的(NxVxW)值是从元素中减去的?

回答

1

是的,它是可能的,例如:

import tensorflow as tf 
a=tf.constant([[[1,2,3],[4,5,6]],[[11,12,13],[14,15,16]]]) 
b=tf.constant([10,20,30]) 
res=a-b 
sess=tf.InteractiveSession() 
res.eval() 

这将打印

array([[[ -9, -18, -27], 
     [ -6, -15, -24]], 

     [[ 1, -8, -17], 
     [ 4, -5, -14]]]) 

+0

感谢,但你知道他们为什么被减少了最后,而不是第一个尺寸? – user2255757

+0

@ user2255757这只是如何定义tf.subtract。如果你想减去第二维,你可以这样做:b = tf.constant([10,20])然后res = a-tf.reshape(b,[1,-1,1])。为了减去第一个,你可以做res = a-tf.reshape(b,[ - 1,1,1])。 –