1. 程式人生 > >tensorflow中的tf.initialize_local_variables/tf.global_variables_initializer/initialize_all_variables

tensorflow中的tf.initialize_local_variables/tf.global_variables_initializer/initialize_all_variables

使用TensorFlow的時候定義了變數之後還需要初始化之後才能使用,不然會報錯:Attempting to use uninitialized value,下面介紹TensorFlow中常用的幾種初始化操作

1、tf.global_variable_initializer

官方介紹地址:https://tensorflow.google.cn/api_docs/python/tf/initializers/global_variables

用來初始化計算圖中的全域性的變數,全域性變數是指建立的變數在tf.GraphKeys.GLOBAL_VARIABLES中,在使用Variable建立變數時預設是collections預設是tf.GraphKeys.GLOBAL_VARIABLES

if __name__ == "__main__":
    v = tf.Variable(1)
    c = tf.constant(2)
    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        print(sess.run(v))
        print(sess.run(c))

2、tf.initialize_all_variables

2017年3月2日之後使用global_variables_initializer()來代替tf.initialize_all_variables()

3、tf.initialize_local_variables

初始化計算圖中所有的區域性變數,區域性變數是指建立的變數在tf.GraphKeys.LOCAL_VARIABLES中,在使用saver的時候,區域性變數是不存在在模型檔案中的

if __name__ == "__main__":
    a = tf.Variable(1,name="a",collections=[tf.GraphKeys.LOCAL_VARIABLES])
    with tf.Session() as sess:
        sess.run(tf.local_variables_initializer())
        print(sess.run(a))

注意:在使用區域性變數時必須使用tf.local_variables_initializer初始化器,在使用全域性變數時必須使用tf.global_variables_initializer初始化器,不然會報tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value