前面博客已经说过,tf.Variable的本质就是C++变量或者数组,所以在声明变量时,最好自己给定变量一个名字,如下代码:
import tensorflow as tf
import numpy as np
w = tf.Variable([[11,12,13],[22,23,25]],dtype=tf.float32,name=“w”)
save = tf.train.Saver()
with tf.Session() as sess:
sess.run(init)
save_path = save.save(sess,“my_net/save_net.ckpt”)
print(“保存路径:”,save_path)
执行sess.run(init后,相当于执行c++代码:float w[2][3]={{11,12,13},{22,23,25}}
tensorflow保存变量实际 上是保存的C++ 浮点二维数组w
如果声明tf.Variable时,不给名字,tensorflow会给一个名字,以后提取变量时,不能根据变量名字提取变量值,太依赖变量声明的顺序
看代码:
import tensorflow as tf
import numpy as np
data1=tf.Variable([1,2,3],dtype=tf.int32)
data2=tf.Variable([1,2,3],dtype=tf.int32,name=“data2”)
data3=tf.Variable([1,2,3],dtype=tf.int32)
data4=tf.Variable([1,2,3],dtype=tf.int32)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(data1)
print(data2)
print(data3)
print(data4)
输出为:
<tf.Variable ‘Variable:0’ shape=(3,) dtype=int32_ref>
<tf.Variable ‘data2:0’ shape=(3,) dtype=int32_ref>
<tf.Variable ‘Variable_1:0’ shape=(3,) dtype=int32_ref>
<tf.Variable ‘Variable_2:0’ shape=(3,) dtype=int32_ref>
变量data1,data3,data4的名字为系统给定的,data2的名字为自己给定的,系统的给定的名字格式为:Variable_n:0,其中n与变量声明的顺序有关