python - 如何在tensorflow中实现Region of Interest Pooling层?
问题描述
我正在尝试创建 Faster RCNN 之类的模型。当涉及到特征图的 ROI 池时,我陷入了困境。我知道这里可以使用双线性采样,但它可能对端到端训练没有帮助。如何在 tensorflow 中实现这个 ROI 池化层?
解决方案
双线性采样——顾名思义——实际上甚至可以用于端到端训练,因为它基本上是一个线性操作。但是,缺点是您的局部最大值(即强激发或某些单位)可能会消失,因为您的采样点恰好接近最小值。为了解决这个问题,您可以改为应用max_pool(features, kernel, stride)
调整内核和步幅的操作,以使该最大池操作的最终输出始终具有相同的维度。
一个例子:你的特征有大小12x12
,你想汇集到4x4
,然后设置kernel=(3,3)
并stride=(3,3)
帮助你实现这一点,对于每个3x3
补丁,相应特征图中最强的激励将包含在输出中。
推荐阅读
- mysql - 如何在mysql中进行全外连接?
- reactjs - 如何测试包含多个 API 请求和数组转换的 redux-thunk 操作?
- spring-boot - Spring Data JPA 和 Hikari 连接池中的连接断开
- python-3.x - 循环遍历熊猫数据框列表并使其为空数据框
- python - 使用 lexsort 对 numpy 数组进行排序
- node.js - 这是“path.normalize”文档中的错误吗?
- c# - ASP.NET 中 Endpoints 的本质是什么?
- python - 来自 SoCo 类 MusicLibrary 的属性错误,文档似乎说不是错误
- jquery - 点击隐藏图片
- swiftui - 如何通过动态调用替换@FetchRequest