tensorflow/threading 用到的一些函数
---恢复内容开始---
import tensorflow as tf
1 tf.squeeze([1,2,3,4]) 删除所有为1的维度 eg shape从(1,2,3,1)到(2,3)
2 tf.distributions.normal(loc=0.0,scale=1.0) loc 是高斯分布的μ,scale是标准差σ,返回的是一个正态分布
用.sample(N) 从这个正态分布中选取N个数
用.prob(a) 求在这个正态分布中选择a的概率
3 tf.nn.softplus 计算激活函数softplus,即log( exp( features ) + 1)
4 threading.Event看成一个水闸
定义一个水闸:flag_event = threading.Event()
创建一根水管,把水闸加载进去:t1 = threading.Thread(target=test, args=(flag_event,), name='flag')
查看水闸状态:flag_event.is_set()返回Ture或False
在水闸内增加水闸:flag_event.wait()
开闸:flag_event.set()
关闸:flag_event.clear()
5 tensorflow中协调器 tf.train.Coordinator 和入队线程启动器 tf.train.start_queue_runners
Coordinator类用来管理在Session中的多个线程,可以用来同时停止多个工作线程并且向那个在等待所有工作线程终止的程序报告异常,该线程捕获到这个异常之后就会终止所有线程。使用 tf.train.Coordinator()来创建一个线程管理器(协调器)对象。
- 调用 tf.train.Coordinator() 来创建一个线程协调器,用来管理之后在Session中启动的所有线程;
- 使用 coord.should_stop()来查询是否应该终止所有线程
- 使用coord.request_stop()来发出终止所有线程的命令,使用coord.join(threads)把线程加入主线程,等待threads结束。
QueueRunner类用来启动tensor的入队线程,可以用来启动多个工作线程同时将多个tensor(训练数据)推送入文件名称队列中,具体执行函数是 tf.train.start_queue_runners , 只有调用 tf.train.start_queue_runners 之后,才会真正把tensor推入内存序列中,供计算单元调用,否则会由于内存序列为空,数据流图会处于一直等待状态。
6 threading.Thread.start()和threading.Thread.run()
start()方法,开始线程活动,对每一个线程对象来说只能被调用一次,超过一次会引入RuntimeError(运行时错误)。
run()方法,代表了线程活动的方法,可以在子类中重写。标准run()方法调用了传递给对象的构造函数的可调对象作为目标参数,如果有这样的参数的话,顺序和关键字参数分别从args和kargs取得。
7 threading.Thread(target=worker,args=(i,))
第一个参数是函数名,第二个参数args是一个元组,如果只传递一个值,就只需要i, 如果需要传递多个参数,那么还可以继续传递下去其他的参数。特别注意其中的逗号不能少,少了就不是元组了,就会报错。
---恢复内容结束---
tensorflow/threading 用到的一些函数的更多相关文章
- Tensorflow的基本概念与常用函数
Tensorflow一些常用基本概念与函数(一) 1.tensorflow的基本运作 为了快速的熟悉TensorFlow编程,下面从一段简单的代码开始: import tensorflow as tf ...
- Tensorflow一些常用基本概念与函数(四)
摘要:本系列主要对tf的一些常用概念与方法进行描述.本文主要针对tensorflow的模型训练Training与测试Testing等相关函数进行讲解.为‘Tensorflow一些常用基本概念与函数’系 ...
- Tensorflow一些常用基本概念与函数(二)
1.tensorflow的基本运作 为了快速的熟悉TensorFlow编程,下面从一段简单的代码开始: import tensorflow as tf #定义‘符号’变量,也称为占位符 a = tf. ...
- Tensorflow一些常用基本概念与函数(三)
摘要:本系列主要对tf的一些常用概念与方法进行描述.本文主要针对tensorflow的数据IO.图的运行等相关函数进行讲解.为‘Tensorflow一些常用基本概念与函数’系列之三. 1.序言 本文所 ...
- Tensorflow一些常用基本概念与函数
1.tensorflow的基本运作 为了快速的熟悉TensorFlow编程,下面从一段简单的代码开始: import tensorflow as tf #定义‘符号’变量,也称为占位符 a = tf. ...
- Tensorflow一些常用基本概念与函数(1)
为了快速的熟悉TensorFlow编程,下面从一段简单的代码开始: import tensorflow as tf #定义‘符号’变量,也称为占位符 a = tf.placeholder(" ...
- tensorFlow(一)相关重要函数理解
1.函数及参数:tf.nn.conv2d conv2d( input, filter, strides, padding, use_cudnn_on_gpu=True, data_format='NH ...
- TensorFlow随机值:tf.random_normal函数
tf.random_normal 函数 random_normal( shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=No ...
- Python threading 单线程 timer重复调用函数
项目中需要使用定时器,每次都使用构造器函数调用: timer = threading.Timer(timerFlag, upload_position) timer.start() 打印线程后发现,每 ...
随机推荐
- Java基于opencv—矫正图像
更多的时候,我们得到的图像不可能是正的,多少都会有一定的倾斜,就比如下面的 我们要做的就是把它们变成下面这样的 我们采用的是寻找轮廓的思路,来矫正图片:只要有明显的轮廓都可以采用这种思路 具体思路: ...
- Grid 实现瀑布流布局
<!doctype html> <html> <head> <meta charset="utf-8"> </head> ...
- vue 动态循环出的多个select 不能重复选择相同的数据
看图说话 HTML: JS: 1) 2) 3) 有更好的方法可以相互学习.
- vue项目localhost可以访问 ip不能访问
解决方法: 如图所示:
- es6去重
// set是一种新的数据结构,它可以接收一个数组或者是类数组对象,自动去重其中的重复项目. var arr=[9,9,"丸子","丸子",undefined, ...
- MySQL 对分组后的同类数据进行拼接字符串
MySQL 对分组后的同类数据进行拼接字符串 写后台方法时遇到个问题,需要将表内同一订单号的操作记录流水进行简单拼接输出,不想取出来再操作,找了个mysql的方法直接操作 //group_concat ...
- The 19th Zhejiang University Programming Contest Sponsored by TuSimple (Mirror)
http://acm.zju.edu.cn/onlinejudge/showContestProblems.do?contestId=391 A Thanks, TuSimple! Time ...
- Mysql主外键
主键 primary key 创建表时直接加上主键: create table student1(id int primary key, name varchar(20), age int, g ...
- javascript常见问题总结
1.const obj = {a:6}; obj.b=8; obj.a=9;//obj为{a:9,b:8};const定义对象的时候是可以改变内容的. const b = "hello&qu ...
- js入门关于js‘i++’‘++i’和‘i--’‘--i’计算的问题
一,i++和++i; i++是先赋值在运算,++i是先运算在赋值: 例如:var a=1 a++:在运算时是按照1计算的:但在下面再次出现时是按照2进行运算: ++a:在运算时是按照2计算的:在下面再 ...