今日在Stack Overflow上看到一個問如何只初始化未初始化的變量,有人提供了一個函數,特地粘貼過來共大家品鑒:
import tensorflow as tf def initialize_uninitialized(sess): global_vars = tf.global_variables() is_not_initialized = sess.run([tf.is_variable_initialized(var) for var in global_vars]) not_initialized_vars = [v for (v, f) in zip(global_vars, is_not_initialized) if not f] print [str(i.name) for i in not_initialized_vars] # only for testing if len(not_initialized_vars): sess.run(tf.variables_initializer(not_initialized_vars))
通過tf.global_variables()返回一個全局變量的列表global_vars, 然后以python列表解析式的方式判斷全局變量列表global_vars中每個變量是否都被初始化了,并返回一個對應的True/False的布爾值列表is_not_initialized;
然后再把global_vars中的變量和布爾值列表進行打包配對,并選出沒有初始化的變量的列表,得到所有未初始化變量的列表not_initialized_vars;打印出這些變量的名字;
對于這些未初始化的變量,通過會話(sess)運行tf.variables_initializer(not_initialized_vars)使所有未初始化的變量都初始化。
以上這篇tensorflow 初始化未初始化的變量實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答