Tensorflow:将一个文件的全部内容精确地读入一个张量

Tensorflow:将一个文件的全部内容精确地读入一个张量,tensorflow,Tensorflow,我正在处理大约300MB的word嵌入数据(目前是一个.npz,但我愿意将其翻译成任何格式),我想知道是否有一种方法可以将该数据转换成tensorflow,而不需要在python中初始化它(即从numpy数组初始化tf.Variable) 我想要避免这种情况的原因是,这样做会导致tensorflow在编写摘要时转储嵌入和图形定义。看 对于我的训练数据,我使用普通的tensorflow阅读器管道(TFRecordReader,文件名队列,tf.train.shuffle\u batch)。这非常适

我正在处理大约300MB的word嵌入数据(目前是一个.npz,但我愿意将其翻译成任何格式),我想知道是否有一种方法可以将该数据转换成tensorflow,而不需要在python中初始化它(即从numpy数组初始化
tf.Variable

我想要避免这种情况的原因是,这样做会导致tensorflow在编写摘要时转储嵌入和图形定义。看


对于我的训练数据,我使用普通的tensorflow阅读器管道(TFRecordReader,文件名队列,
tf.train.shuffle\u batch
)。这非常适合阅读固定大小的批量示例,用于预定义数量的历代。我不知道如何将文件的全部内容读入单个张量中。我可以很容易地解决这个问题,只需读取一个与我的嵌入完全相同大小的批次,但我想要一个更通用的解决方案,它不依赖于知道记录的数量,只需要知道单个记录的格式。

实现这一点的最简单方法是通过从,然后使用进给机构传入值。因此,实际值永远不会出现在图形本身中

假设嵌入矩阵为1000 x 100:

embedding_init = tf.placeholder(tf.float32, shape=[1000, 100])
embedding = tf.Variable(embedding_init)
然后可以使用
.npz
文件中的值初始化变量:

datafile = numpy.load("data.npz")
embedding_value = datafile["embedding"]

sess = tf.Session()
sess.run(tf.initialize_all_variables(),
         feed_dict={embedding_init: embedding_value})

datafile.close()