gpt4 book ai didi

Tensorflow:将文件的全部内容恰好一次读入单个张量

转载 作者:行者123 更新时间:2023-12-03 12:46:38 24 4
gpt4 key购买 nike

我正在处理大约 300MB 的字嵌入数据(目前是 .npz,但我愿意将工作翻译成任何格式),我想知道是否有办法将这些数据导入 tensorflow这不涉及在 python 中初始化它(即从 numpy 数组初始化 tf.Variable)。

我想避免这种情况的原因是,这样做会导致 tensorflow 在编写摘要时将我的嵌入与图定义一起转储。见 https://github.com/tensorflow/tensorflow/issues/1444 .

对于我的训练数据,我使用普通的 tensorflow 读取器管道(TFRecordReader,文件名队列,tf.train.shuffle_batch)。这非常适合读取预定数量的 epoch 的固定大小批次的示例。我不知道该怎么做是将文件的全部内容读入 单张量 .我可以很容易地解决这个问题,只需读取一个包含我的嵌入的完整大小的批次,但我想要一个更通用的解决方案,它不依赖于知道记录数,只依赖于单个记录格式。

最佳答案

实现这一点的最简单方法是创建一个 tf.Variable 通过从 tf.placeholder() 初始化它来获得适当的类型和形状,然后使用馈送机制传入值。因此,实际值永远不会出现在图表本身中。

假设您的嵌入矩阵是 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()

关于Tensorflow:将文件的全部内容恰好一次读入单个张量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35903910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com