如何将SciPy稀疏矩阵读入Tensorflow的占位符

时间:2017-05-11 08:19:55

标签: tensorflow scipy

可以通过这种方式读取密集数据:

# tf - tensorflow, np - numpy, sess - session
m = np.ones((2, 3))
placeholder = tf.placeholder(tf.int32, shape=m.shape)
sess.run(placeholder, feed_dict={placeholder: m})

如何将scipy稀疏矩阵(例如scipy.sparse.csr_matrix)读入tf.placeholder或者tf.sparse_placeholder?

2 个答案:

答案 0 :(得分:0)

我认为目前TF没有很好的方法来读取稀疏数据。如果您不想将稀疏矩阵转换为密集矩阵,可以尝试构造sparse tensor.

以下是official tutorial告诉您的内容:

  

SparseTensors与队列不兼容。如果您使用SparseTensors   你必须使用tf.parse_example解码字符串记录   批处理(而不是在批处理之前使用tf.parse_single_example)。

答案 1 :(得分:0)

将SciPy稀疏矩阵提供给TF占位符

  • 选项1:您需要使用tf.sparse_placeholder。在Use coo_matrix in TensorFlow中显示了将数据提供给sparse_placeholder
  • 的方式
  • 选项2:您需要将稀疏矩阵转换为NumPy密集矩阵并馈送到tf.place_holder(当然,当转换后的密集矩阵内存不足时,这种方式是不可能的)