调整张量并使用零进行插值

时间:2018-02-01 09:49:17

标签: python tensorflow

我想将2x2张量调整为4x4张量,但将新值设为零。

[[1,2],
 [3,4]]

变为

[[1,0,2,0],
 [0,0,0,0],
 [3,0,4,0],
 [0,0,0,0]]

我找不到合适的方法来做到这一点。

1 个答案:

答案 0 :(得分:1)

使用您拥有的值定义稀疏张量并将其转换回密集:

a = tf.constant([[1,2],[3,4]]) # your input tensor

indices = tf.constant( [[0,0],[0,2],[2,0],[2,2]], dtype=tf.int64 ) # define this as appropriate
values = tf.reshape(a, [-1]) # flatten the input
sparse_tensor = tf.SparseTensor(indices, values, [4,4])
res = tf.sparse_tensor_to_dense(sparse_tensor)

with tf.Session() as sess:
    print(sess.run(res))

打印

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