当前位置: 首页 > 编程笔记 >

tensorflow之获取tensor的shape作为max_pool的ksize实例

范承望
2023-03-14
本文向大家介绍tensorflow之获取tensor的shape作为max_pool的ksize实例,包括了tensorflow之获取tensor的shape作为max_pool的ksize实例的使用技巧和注意事项,需要的朋友参考一下

实验发现,tensorflow的tensor张量的shape不支持直接作为tf.max_pool的参数,比如下面这种情况(一个错误的示范):

self.max_pooling1 = tf.nn.max_pool(self.l_6, ksize = [1, tf.shape(self.F1)[0], 1, 1], strides = [1, 1, 1, 1], padding = 'VALID', name = 'maxpool1')

我在max_pool的过程中想对特征每一列进行max_pooling,但因为tensor F1张量没有值,而ksize此处需要一个int类型的常量,所以tf.shape(self.F1)[0]无法作为ksize的参数。

一些人的做法是固定行数,比如pointnet固定为2048个点,但这样做需要重新采样,过于麻烦。

而既然tensorflow不提供标准的max_pool层实现,其实可以自己实现每一列取最大值的操作,充当自己的max_pool。如下图所示:

def max_pooling(self, NC):
    out = tf.reduce_max(NC, reduction_indices=[0])
    return out

利用reduce_max刚好能实现这个操作,其中reduction_indices可以指定取哪一维的最大值。这个函数的详细功能可以参考官方文档。

这种情况和tf.reshape不同,tf.reshape是可以使用tf.shape(tensor)[i]的,可能两者对参数的要求不一样。

以上这篇tensorflow之获取tensor的shape作为max_pool的ksize实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • Manages the dimensions of a Tensor and their sizes. Member Summary tensorflow::TensorShape::TensorShape(gtl::ArraySlice< int64 > dim_sizes) Construct a TensorShape from the provided sizes. REQUIRES: d

  • Member Summary int tensorflow::TensorShapeDim::size tensorflow::TensorShapeDim::TensorShapeDim(int64 s) Member Details int tensorflow::TensorShapeDim::size tensorflow::TensorShapeDim::TensorShapeDim(i

  • Static helper routines for TensorShape. Includes a few common predicates on a tensor shape. Member Summary static bool tensorflow::TensorShapeUtils::IsScalar(const TensorShape &shape) static bool tens

  • Member Summary tensorflow::TensorShapeIter::TensorShapeIter(const TensorShape *shape, int d) bool tensorflow::TensorShapeIter::operator==(const TensorShapeIter &rhs) bool tensorflow::TensorShapeIter::

  • 问题内容: 我正在按照本教程学习TensorFlow Slim,但是在运行以下代码进行Inception时: 我似乎收到这组错误: 这很奇怪,因为所有这些代码均来自其官方指南。我是TF的新手,我们将不胜感激。 问题答案: 使用1.0发行版时,我遇到了同样的问题,我可以使其工作而不必回滚到先前版本。 问题是由api的更改引起的。这次讨论帮助我找到了解决方案:Google组> TensorFlow中的

  • Represents an n-dimensional array of values. Member Summary tensorflow::Tensor::Tensor() Default Tensor constructor. Creates a 1-dimension, 0-element float tensor. tensorflow::Tensor::Tensor(DataType