从占位符张量创建SparseTensor?

时间:2017-08-30 21:53:21

标签: tensorflow

我想创建一个2D Tensor,其行是指标向量 - 零,除了单列中的一个 - 来自占位符Tensor的输入。 我尝试了类似的方法:

train_labels = tf.placeholder(tf.int32, shape=[64, 1])
...
tf.SparseTensor(
  indices=[[i, x] for i, x in enumerate(train_labels)],
  values=tf.ones(64),
  dense_shape=[64, 50000])

但是张量不可迭代。有人有方向吗?

1 个答案:

答案 0 :(得分:0)

在张量操作中工作,我有一个丑陋的原型:

i = -1
def mk_pair(x):
    global i
    i = i+1
    c = tf.constant(i, dtype=tf.int64, shape=[1])
    x = tf.cast(x, tf.int64)
    return tf.concat([c, x], 0)

tf.SparseTensor(
    indices=tf.cast(tf.map_fn(mk_pair, train_labels), tf.int64),
    values=tf.ones(64),
    dense_shape=[64, 50000])