假设我在对一些 tf.Session
sess
和一些 tf.train.Saver
进行一些计算后在机器 A 上执行以下操作 saver
,假设我有一些 tf.Graph
G
和一些变量 V
:
with tf.Graph().as_default():
# Define G, V, initialize for sess, then run some computation
saver.save(sess, '/A/somefolder/somefile')
这会创建 somefile
、somefile.meta
,并更新 somefolder
中的检查点
。
接下来,假设在机器 B 上我复制了 somefolder
的全部内容并运行以下命令:
with tf.Graph().as_default():
# Define G and V the same way. No initialization or run here.
saver.restore(sess, '/B/somefolder/somefile')
对于机器 A 和 B,变量在代码块末尾是否具有相同的状态?这保证可以在所有平台上运行吗?不同版本的 Linux 怎么样?
最佳答案
保护程序使用简单的文件格式 based on LevelDB存储将变量名称(作为字符串)映射到 SavedTensorSlice
protocol buffers 的键值表。该格式旨在跨所有平台工作,尽管它主要在小端(即基于 x86)架构上进行了测试。同一文件应该可以在不同版本的 Linux 以及 Linux 和 Mac OS X 之间运行。如果不能,请提出 issue !
关于cross-platform - TensorFlow 中的 Saver 是否具有跨平台文件格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37448341/