下文只是个人笔记,不保证正确和详尽。
tensorflow的计算图包括tensor、operation。保存一张完整的计算图意味着同时保存两者,只需要一句话。但加载网络有痛处,在于无法当你不是作者的时候,无法快速得知网络里到底有哪些tensor、operation。
先说重点
计算图里的tensor和operation几乎结伴出现(我没验证过)。定义一个variable,则它也配备一个operation;设计一个operation,则它也有对应的输出作为tensor。所有调用格式都是:
。 | 。 | eg |
---|---|---|
tensor | name:index | w:0 |
operation | name | w |
index怎么取的还没搞懂。
如果没有名字(这取决于一开始训练有没有取名字),那么只能用其他接口查阅有哪些名字,再调用 ,下文会提。
准备
这是我测试用的网络。注释掉的部分可以用来做对比。
tf早期的图、权重保存方式和现在的不一样,现在是分3个文件保存的:.data .meta .index,另外还有一个记录文件checkpoint。详情谷歌。
def first():
W = tf.Variable([[1,1,1],[2,2,2]],dtype = tf.float32,name=<