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

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!