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()函数相关推荐

  1. 【转载】使用tf.py_func函数增加Tensorflow程序的灵活性

    转自:https://blog.csdn.net/jiongnima/article/details/80555387 目录 tf.py_func函数接口 tf.py_func在Faster R-CN ...

  2. 经验干货:使用tf.py_func函数增加Tensorflow程序的灵活性

    不知不觉,笔者接触Tensorflow也满一年了.在这一年当中,笔者对Tensorflow的了解程度也逐渐加深.相比笔者接触的第一个深度学习框架Caffe而言,笔者认为Tensorflow更适合科研一 ...

  3. Tensorflow之调试(Debug) tf.py_func()

    Tensorflow之调试(Debug)及打印变量 tensorflow调试tfdbg 几种常用方法: 1.通过Session.run()获取变量的值 2.利用Tensorboard查看一些可视化统计 ...

  4. tensorflow tf.py_func

    tf.py_func 在 faster  rcnn的tensorflow 实现中看到这个函数 1 rois,rpn_scores=tf.py_func(proposal_layer,[rpn_cls_ ...

  5. Tensorflow深度学习之二十五:tf.py_func

    一.简介 def py_func(func, inp, Tout, stateful=True, name=None)   该函数重构一个python函数,并将其作为一个TensorFlow的op使用 ...

  6. tensorflow与python交互系列,tf.py_function()、tf.py_func、tf.numpy_function()(一)

    前言:前面在介绍使用tensorflow进行data pipeline的时候,遇到了一些问题,特意整理了两篇文章,请参见: tfrecord文件的map在使用的时候所踩的坑总结(map.py_func ...

  7. tensorflow的tf.reduce_mean函数

    tf.reduce_mean函数的作用是求平均值.第一个参数是一个集合,可以是列表.二维数组和多维数组.第二个参数指定在哪个维度上面求平均值.默认对所有的元素求平均.tf.reduce_mean 比如 ...

  8. 计算机一级电子表格TF函数,tf.slice()函数详解(极详细)

    tf.slice()是TensorFlow库中分割张量的一个函数,其定义为def slice(input_, begin, size, name=None):.tf.slice()函数的那些参数设置实 ...

  9. tensorflow中tf.get_variable()函数详解

    如果变量存在,函数tf.get_variable()会返回现有的变量:如果变量不存在,会根据给定形状和初始值创建一个新的变量. def get_variable(name, shape=None, d ...

最新文章

  1. Lync Server 2013 实战系列之六:标准版-安装和更新LyncServer 系统
  2. Ubuntu 9.10下载地址
  3. android之多媒体篇(二)
  4. python循环中append_[Python]list.append()在for循环中每次添加的都是最后的一个元素
  5. BAT 批处理命令 - 获取时间并进行自定义年月日、时分秒格式实例演示
  6. 做 SQL 性能优化真是让人干瞪眼
  7. android开启热点softap模式,[RK3288][Android6.0] Wifi开启热点(SoftAP)流程小结
  8. Java使用独立数据库连接池(DBCP为例)
  9. mysql版本更新之后忘记登录密码_MySQL 密码遗忘和登陆报错问题
  10. full gc 次数_32. GC 是怎样工作的?
  11. B站DR-CANup主电路系统建模_基尔霍夫定律的解题过程分析
  12. CSS样式中,background-image 背景图片居中显示并且在不同屏幕分辨率下始终居中
  13. LINUX 版本信息查看(全)
  14. SpringBoot的C2C水果商城系统
  15. 问题: 在Multisim中的 Tools»Show Breadboard,我找不到面包板视图的选项。
  16. Qtdesigner 插入图片(一步到位)
  17. Flash 芯片类型介绍
  18. xzp android webview,加载gif动态图的三种方式
  19. 16福师计算机应用基础在线作业,[16春季福师计算机应用基础在线作业一.doc
  20. python爬虫——爬去淘宝商品页面,总是跳转到登录界面

热门文章

  1. python try except作用_python try except有什么用?
  2. 【CSA35G】【XSY3318】Counting Quests DP 拉格朗日反演 NTT
  3. (转载)TOMCAT介绍
  4. Vue3组合式函数最佳实践(一)
  5. 详细Android studio 控件对齐方式
  6. 对不同的人说不同的话-王阳明的心学智慧
  7. NUMA体系结构详解
  8. 【AUTOSAR】【以太网】SomeIpXf
  9. UT-Exynos4412 三星ARM四核旗舰开发平台android4.0体验-1
  10. sharepoint入门。