『TensorFlow』线程控制器类&变量作用域

线程控制器类

线程控制器原理:

监视tensorflow所有后台线程,有异常出现(主要是越界,资源循环完了)时,其should_stop方法就会返回True,而它的request_stop方法则用于要求各个线程安全退出。需要使用local变量,初始化时注意。

coord = tf.train.Coordinator()  # 线程控制器
threads = tf.train.start_queue_runners(coord=coord) # 启动队列
try:
    while not coord.should_stop():
        # 定义训练状态报告即可,轮数等信息会在数据生成流程中规定
        pass

except tf.errors.OutOfRangeError:
            saver.save(sess, os.path.join(model_path, 'fast_style_model'))
            tf.logging.info('Epoch limit reached')
        finally:
            coord.request_stop()
coord.join(threads)

变量作用域

『cs231n』通过代码理解gan网络&tensorflow共享变量机制

tf.Variable()                                                                         # 声明变量
tf.get_variable()                                                                     # 声明变量
tf.global_variables_initializer()                                                     # 激活变量
变量作用域的复用对RNN和GAN网络都很重要
加深理解变量作用域
1.上下文仅在命名时用以区分,不影响调用,所以下面的变量在上下文外引用依然不报错(此时名称已经生成)
2.可以通过引用上下文代号载入/重用作用域!?
3.存在载入关系时,忽略当前域位置的上层域(细想的话也理应如此)
4.可以通过变量域为域内初始化添加默认参数
5.get函数得到的变量名只继承变量域,不继承名称域

猜你喜欢

转载自www.cnblogs.com/hellcat/p/7361686.html
今日推荐