将张量值保存为二进制格式的文件的最佳方法是什么?

김종현*_*김종현 7 python floating-point tensorflow

我正在尝试将张量值保存为二进制格式的文件.特别是我试图将float32张量值保存为二进制格式(IEEE-754格式).请你帮助我好吗 ??

import tensorflow as tf

x = tf.constant([[1.0, 2.0, 3.0], [5.5, 4.3, 2.5]])

# how to save tensor x as binary format ?? 
Run Code Online (Sandbox Code Playgroud)

Dan*_*ien 3

推荐的方法是检查模型。如保存和恢复程序员指南中所述,您创建一个tf.train.Saver对象,可以选择指定要保存的变量/可保存对象。然后,每当您想要保存张量的值时,您就调用对象的 save() 方法tf.train.Saver

saver = tf.train.Saver(...)

#...

saver.save(session, 'my-checkpoints', global_step = step)
Run Code Online (Sandbox Code Playgroud)

.. 其中第二个参数('my-checkpoints'在上面的示例中)是存储检查点二进制文件的目录的路径。

另一种方法是评估单个张量(将是 NumPy ndarray),然后将单个 ndarray 保存到 NPY 文件(通过numpy.save())或将多个 ndarray 保存到单个 NPZ 存档(通过numpy.savez()numpy.savez_compressed()):

np.save('x.npy', session.run(x), allow_pickle = False)
Run Code Online (Sandbox Code Playgroud)