今日在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 初始化未初始化的变量实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。