tensorflow--稀疏张量--4--tf.SparseTensor

例子

tf.SparseTensor(values=[‘en’,‘fr’,‘zh’],indices=[[0,0],[0,1],[2,0]],shape=[3,2])

1.shape=[3,2] ,生成3*2的数组

[[0,0]
[0,0]
[0,0]
]

2.indices=[[0,0],[0,1],[2,0]],说明上面数组的这些下标的位置是有值的

3、values=[‘en’,‘fr’,‘zh’]

就是与values给的这些值相对应,最终表示的矩阵为:

[['en' 'fr'] 
['0' '0'] 
['zh' '0']]

coo_matrix构建SparseTensorValue

sparse_input = tf.sparse_placeholder(dtype=tf.float32, shape=[100, 100])
# ...
train_op = ...

coo_matrix = scipy.sparse.coo_matrix(...)

# Wrap `coo_matrix` in the `tf.SparseTensorValue` form that TensorFlow expects.
# SciPy stores the row and column coordinates as separate vectors, so we must 
# stack and transpose them to make an indices matrix of the appropriate shape.
tf_coo_matrix = tf.SparseTensorValue(
    indices=np.array([coo_matrix.rows, coo_matrix.cols]).T,
    values=coo_matrix.data,
    dense_shape=coo_matrix.shape)

sess.run(train_op, feed_dict={sparse_input: tf_coo_matrix})

参考资料

这里是一个广告位,,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn