Tensorflow等效于此MATLAB代码

时间:2016-11-03 16:29:56

标签: tensorflow

我想创建一个Tensor,其中包含来自矢量的值的高三角形部分。我在MATLAB中找到了这个可以用

完成的
a = [1 2 3 4 5 6 7 8 9 10];
b = triu(ones(5),1);
b = b'
b(b==1) = a
b = b'

到目前为止我的张量流实现

b = tf.matrix_band_part(tf.ones([dim,dim]), 0, -1) # make upper triangular part 1
b = tf.transpose(b)
...
b = tf.transpose(b)

谁能帮帮我?

1 个答案:

答案 0 :(得分:1)

我还没有看到一种奇妙的方式来做到这一点,但这当然是可能的。这是一种方法(将张量的最后一个维度扩展为矩阵;前面的维度可以是批量维度):

[[0 1]
 [0 0]]
[[0 2 7]
 [0 0 1]
 [0 0 0]]
[[0 3 1 4]
 [0 0 1 5]
 [0 0 0 9]
 [0 0 0 0]]
[[ 0.]]
[[[0 2 7]
  [0 0 1]
  [0 0 0]]

 [[0 4 3]
  [0 0 5]
  [0 0 0]]]
[]

打印:

this.setWillNotDraw(false);´