tf.py_func

在 faster  rcnn的tensorflow 实现中看到这个函数

1
rois,rpn_scores=tf.py_func(proposal_layer,[rpn_cls_prob,rpn_bbox_pred,self._im_info,self.mode,self._feat_stride,self._anchors,self._num_anchors],[tf.float32,tf.float32],name="proposal")

  tensorflow 官网上的解释

py_func(func,     inp,     Tout,     stateful=True,     name=None )
将python 函数包装为一个tensorflow操作符
python 函数proposal_layer 以numpy 矩阵作为输入输出,使函数变为tensorflow图中的操作符
定义一个简单的sinh函数在tensorflow图中:
def my_func(x):
  # x will be a numpy array with the contents of the placeholder below
  return np.sinh(x)
inp = tf.placeholder(tf.float32)
y = tf.py_func(my_func, [inp], tf.float32)
tf.py_func在定义多输出函数时,输出变量类型需要用[ ]框起来;
tf.py_func在定义单输出函数时,输出变量类型不能再用[ ]框起来;
这个需要各外注意!
例如:
多变量时
[python] view plaincopy
  1. def _proposal_layer(self, rpn_cls_prob, rpn_bbox_pred, name):
  2. with tf.variable_scope(name) as scope:
  3. rois, rpn_scores, inds= tf.py_func(proposal_layer,
  4. [rpn_cls_prob, rpn_bbox_pred, self._im_info, self._mode,
  5. self._feat_stride, self._anchors, self._num_anchors],
  6. [tf.float32, tf.float32,tf.int64])
  7. # rois.set_shape([None, 5])
  8. # rpn_scores.set_shape([None, 1])
  9. rois.set_shape([1,None,None,self._num_anchors*5])
  10. rpn_scores.set_shape([1,None,None,self._num_anchors*1])
  11. return rois, rpn_scores,inds
单变量时
[python] view plaincopy
  1. def _draw_proposals_to_image(self,rois,scores,inds,keep_inds,stride,name):
  2. with tf.variable_scope(name) as scope:
  3. mask = tf.py_func(
  4. proposals_to_image,
  5. [rois, scores, inds, keep_inds,stride],
  6. tf.float32)
  7. mask = tf.stop_gradient(mask)
  8. mask.set_shape([1, None, None, cfg.TRAIN.BATCH_SIZE])
  9. return mask

tensorflow tf.py_func相关推荐

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

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

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

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

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

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

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

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

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

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

  6. TensorFlow tf.data 导入数据(tf.data官方教程) * * * * *

    原文链接:https://blog.csdn.net/u014061630/article/details/80728694 TensorFlow版本:1.10.0 > Guide > I ...

  7. tf.py_func()函数

    tensorflow由于构建的是静态图,所以导致在tf.Session().run()之前是没有实际值的,因此,在网络搭建的时候,是不能对tensor进行判值操作的,即不能插入if-else-之类的代 ...

  8. tensorflow tf.keras.utils.plot_model 画深度学习神经网络拓扑图

    tensorflow tf.keras.utils.plot_model 画网络拓扑图 # pip install graphviz # pip install pydot # 下载 graphviz ...

  9. TensorFlow tf.keras.losses.SparseCategoricalCrossentropy 、 categorical_crossentropy

    categorical_crossentropy VS. sparse_categorical_crossentropy 转载qq_42961707 最后发布于2019-07-13 22:10:12  ...

最新文章

  1. python函数参数*args和**args
  2. Linux操作系统报:read-only file system
  3. glibc-2.23学习笔记(一)—— malloc部分源码分析
  4. html 图片上放置按钮,用CSS在图片上再加一个小按钮
  5. 微信小程序_(校园视)开发视频的展示页_上
  6. 论.NET反射、委托与模式关系 zt- -
  7. 收到阿里年终奖后,我感觉穷的睡不着,网友:贫穷限制了我的想象力
  8. restController
  9. 如何设计接口测试用例?(文末送接口测试用例模板)
  10. presscad图层LIsp_PressCADLisp程序说明
  11. 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。
  12. 轻松处理 针式打印机故障解决方法
  13. python语言编写从一加到100_python学习: 如何循序渐进学习Python语言
  14. 房屋装修设计更显档次需要从几个方面入手
  15. 女人,你真的懂自己吗:女生空间QQ情感日志
  16. 大型分布式网站架构设计与实践
  17. 第31课:彻底解密Spark 2.1.X中Shuffle中内存管理源码解密:StaticMemory和UnifiedMemory
  18. 解决问题:使用nvm use出现exit status 1与exit status 145乱码
  19. 库存分析与控制课后习题
  20. 网络计划---网络计划图

热门文章

  1. kvm性能优化方案---cpu/内存/磁盘/网络
  2. easyui datagrid不是相邻的能合并单元格吗_万能的Ctrl+E快捷键,学会能一键批量解决Excel中90%的问题!...
  3. 算法 - 快速排序(C#)
  4. thinkphp5是不是php,我对ThinkPHP5和Laravel5的一些看法
  5. mysql 备份表_MySQL中表的复制以及大型数据表的备份教程
  6. 小学计算机课计划,小学信息技术教学工作计划
  7. 计算机与安全工程专业结合应用论文,安全工程专业教学论文(5篇)(共17517字).doc...
  8. java jtable添加_将带有数据的JTable添加到JDialog
  9. MySQL中,当 update 修改数据与原数据相同时会再次执行吗?
  10. 轻量级嵌入式数据库H2的愉快玩耍之旅