tf.py_func()函数
tensorflow由于构建的是静态图,所以导致在tf.Session().run()之前是没有实际值的,因此,在网络搭建的时候,是不能对tensor进行判值操作的,即不能插入if…else…之类的代码。第二,相较于numpy array,Tensorflow中对tensor的操作接口灵活性并没有那么高,使得Tensorflow的灵活性减弱。
在笔者使用Tensorflow的一年中积累的编程经验来看,扩展Tensorflow程序的灵活性,有一个重要的手段,就是使用tf.py_func接口。 接口解析
代码测试:
def my_func(array1,array2):return array1 + array2, array1 - array2if __name__ =='__main__':array1 = np.array([[1, 2], [3, 4]])array2 = np.array([[1, 2], [3, 4]])a1 = tf.placeholder(tf.float32,[2,2],name = 'array1')a2 = tf.placeholder(tf.float32,[2,2],name = 'array2')y1,y2 = tf.py_func(my_func,[a1,a2],[tf.float32, tf.float32])with tf.Session() as sess:y1_,y2_ = sess.run([y1,y2],feed_dict={a1:array1,a2:array2})print(y1_)print('*'*10)print(y2_)
输出为:
[[2. 4.]
[6. 8.]]
**********
[[0. 0.]
[0. 0.]]
从上面的代码我们可以看出,tf.py_func()接收的是tensor,然后将其转化为numpy array送入我们自定义的my_func函数,最后再将my_func函数输出的numpy array转化为tensor返回。
如果不用tf.py_func()实现的话,我们还可以这样直接用array的方式操作:
def my_func(array1,array2):return array1 + array2, array1 - array2with tf.Session() as sess:array1 = np.array([[1, 2], [3, 4]])array2 = np.array([[1, 2], [3, 4]])y1,y2 = my_func(array1,array2)print(y1)print('*' * 10)print(y2)
输出为:
[[2 4]
[6 8]]
**********
[[0 0]
[0 0]]
tf.py_func()函数相关推荐
- 【转载】使用tf.py_func函数增加Tensorflow程序的灵活性
转自:https://blog.csdn.net/jiongnima/article/details/80555387 目录 tf.py_func函数接口 tf.py_func在Faster R-CN ...
- 经验干货:使用tf.py_func函数增加Tensorflow程序的灵活性
不知不觉,笔者接触Tensorflow也满一年了.在这一年当中,笔者对Tensorflow的了解程度也逐渐加深.相比笔者接触的第一个深度学习框架Caffe而言,笔者认为Tensorflow更适合科研一 ...
- Tensorflow之调试(Debug) tf.py_func()
Tensorflow之调试(Debug)及打印变量 tensorflow调试tfdbg 几种常用方法: 1.通过Session.run()获取变量的值 2.利用Tensorboard查看一些可视化统计 ...
- tensorflow tf.py_func
tf.py_func 在 faster rcnn的tensorflow 实现中看到这个函数 1 rois,rpn_scores=tf.py_func(proposal_layer,[rpn_cls_ ...
- Tensorflow深度学习之二十五:tf.py_func
一.简介 def py_func(func, inp, Tout, stateful=True, name=None) 该函数重构一个python函数,并将其作为一个TensorFlow的op使用 ...
- tensorflow与python交互系列,tf.py_function()、tf.py_func、tf.numpy_function()(一)
前言:前面在介绍使用tensorflow进行data pipeline的时候,遇到了一些问题,特意整理了两篇文章,请参见: tfrecord文件的map在使用的时候所踩的坑总结(map.py_func ...
- tensorflow的tf.reduce_mean函数
tf.reduce_mean函数的作用是求平均值.第一个参数是一个集合,可以是列表.二维数组和多维数组.第二个参数指定在哪个维度上面求平均值.默认对所有的元素求平均.tf.reduce_mean 比如 ...
- 计算机一级电子表格TF函数,tf.slice()函数详解(极详细)
tf.slice()是TensorFlow库中分割张量的一个函数,其定义为def slice(input_, begin, size, name=None):.tf.slice()函数的那些参数设置实 ...
- tensorflow中tf.get_variable()函数详解
如果变量存在,函数tf.get_variable()会返回现有的变量:如果变量不存在,会根据给定形状和初始值创建一个新的变量. def get_variable(name, shape=None, d ...
最新文章
- Lync Server 2013 实战系列之六:标准版-安装和更新LyncServer 系统
- Ubuntu 9.10下载地址
- android之多媒体篇(二)
- python循环中append_[Python]list.append()在for循环中每次添加的都是最后的一个元素
- BAT 批处理命令 - 获取时间并进行自定义年月日、时分秒格式实例演示
- 做 SQL 性能优化真是让人干瞪眼
- android开启热点softap模式,[RK3288][Android6.0] Wifi开启热点(SoftAP)流程小结
- Java使用独立数据库连接池(DBCP为例)
- mysql版本更新之后忘记登录密码_MySQL 密码遗忘和登陆报错问题
- full gc 次数_32. GC 是怎样工作的?
- B站DR-CANup主电路系统建模_基尔霍夫定律的解题过程分析
- CSS样式中,background-image 背景图片居中显示并且在不同屏幕分辨率下始终居中
- LINUX 版本信息查看(全)
- SpringBoot的C2C水果商城系统
- 问题: 在Multisim中的 Tools»Show Breadboard,我找不到面包板视图的选项。
- Qtdesigner 插入图片(一步到位)
- Flash 芯片类型介绍
- xzp android webview,加载gif动态图的三种方式
- 16福师计算机应用基础在线作业,[16春季福师计算机应用基础在线作业一.doc
- python爬虫——爬去淘宝商品页面,总是跳转到登录界面