TensorFlow 中仅初始化未初始化变量的方法
本文介绍在 TensorFlow 中如何仅初始化未初始化的变量。通过 tf.global_variables() 获取全局变量列表,利用 tf.is_variable_initialized 判断状态,筛选出未初始化变量,最后使用 tf.variables_initializer 进行批量初始化。
TensorFlow 仅初始化未初始化变量的实现
最近在 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 中每个变量是否已初始化,生成对应的布尔值列表 is_not_initialized。
然后,将 global_vars 与 is_not_initialized 进行打包配对,筛选出未初始化的变量,得到列表 not_initialized_vars。最后,打印这些未初始化变量的名称。
针对这些未初始化的变量,通过会话(sess)运行 tf.variables_initializer(not_initialized_vars),从而对所有未初始化变量进行初始化。
以上即为 TensorFlow 中初始化未初始化变量的完整示例,希望对大家有帮助。欢迎支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













