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实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
TensorFlow tf.nn.max_pool实现池化操作方式
max pooling是CNN当中的最大值池化操作,其实用法和卷积很类似 有些地方可以从卷积去参考[TensorFlow] tf.nn.conv2d实现卷积的方式 tf.nn.max_pool(value, ksize, strides, padding, name=None) 参数是四个,和卷积很类似: 第一个参数value:需要池化的输入,一般池化层接在卷积层后面,所以输入通常是feature map,依然是[batch, height, width, channels]这样的shape 第
-
pytorch 获取tensor维度信息示例
我就废话不多说了,直接上代码吧! >>> import torch >>> from torch.autograd import Variable >>> from torch import IntTensor >>> var = Variable(IntTensor([[1,0],[0,1]])) >>> var Variable containing: 1 0 0 1 [torch.IntTensor of si
-
pytorch逐元素比较tensor大小实例
如下所示: import torch a = torch.tensor([[0.01, 0.011], [0.009, 0.9]]) mask = a.gt(0.01) print(mask) tensor比较大小可以用tensor.gt属性.上面比较了a中每个元素和0.01的大小,大于0.01的元素输出True.输出结果: tensor([[False, True], [False, True]]) 我们取出tenor a中对应的大于0.01的值: a[mask] 将对应满足条件的元素输出并自
-
对Pytorch中Tensor的各种池化操作解析
AdaptiveAvgPool1d(N) 对一个C*H*W的三维输入Tensor, 池化输出为C*H*N, 即按照H轴逐行对W轴平均池化 >>> a = torch.ones(2,3,4) >>> a[0,1,2] = 0 >>>> a tensor([[[1., 1., 1., 1.], [1., 1., 0., 1.], [1., 1., 1., 1.]], [[1., 1., 1., 1.], [1., 1., 1., 1.], [1.,
-
PyTorch中Tensor的维度变换实现
对于 PyTorch 的基本数据对象 Tensor (张量),在处理问题时,需要经常改变数据的维度,以便于后期的计算和进一步处理,本文旨在列举一些维度变换的方法并举例,方便大家查看. 维度查看:torch.Tensor.size() 查看当前 tensor 的维度 举个例子: >>> import torch >>> a = torch.Tensor([[[1, 2], [3, 4], [5, 6]]]) >>> a.size() torch.Size
-
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_pool
-
tensorflow 动态获取 BatchSzie 的大小实例
我就废话不多说了,大家还是直接看代码吧~ import tensorflow as tf import sys with tf.variable_scope('ha'): a1 = tf.get_variable('a', shape=[], dtype=tf.int32) with tf.variable_scope('haha'): a2 = tf.get_variable('a', shape=[], dtype=tf.int32) with tf.variable_scope('haha
-
python如何获取tensor()数据类型中的值
目录 获取tensor()数据类型的值 一.问题 二.解决方法 tensorflow笔记:tensor数据类型 常见的数据类型载体 Tensor是什么 Tensor支持的类型 Tensor Property 获取tensor()数据类型的值 一.问题 只想要216.8973那个数. 二.解决方法 1.单个tensor tensor.item() 就可以得到216.8973. 2.多个tensor tensor.tolist() 完美解决~ tensorflow笔记:tensor数据类型 常见的数
-
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
ckpt from tensorflow.python import pywrap_tensorflow checkpoint_path = 'model.ckpt-8000' reader = pywrap_tensorflow.NewCheckpointReader(checkpoint_path) var_to_shape_map = reader.get_variable_to_shape_map() for key in var_to_shape_map: print("tensor_
-
使用TensorFlow直接获取处理MNIST数据方式
MNIST是一个非常有名的手写体数字识别数据集,TensorFlow对MNIST数据集做了封装,可以直接调用.MNIST数据集包含了60000张图片作为训练数据,10000张图片作为测试数据,每一张图片都代表了0-9中的一个数字,图片大小都是28*28.虽然这个数据集只提供了训练和测试数据,但是为了验证训练网络的效果,一般从训练数据中划分出一部分数据作为验证数据,测试神经网络模型在不同参数下的效果.TensorFlow提供了一个类来处理MNIST数据. 代码如下: from tensorflow
-
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
一.保存: graph_util.convert_variables_to_constants 可以把当前session的计算图串行化成一个字节流(二进制),这个函数包含三个参数:参数1:当前活动的session,它含有各变量 参数2:GraphDef 对象,它描述了计算网络 参数3:Graph图中需要输出的节点的名称的列表 返回值:精简版的GraphDef 对象,包含了原始输入GraphDef和session的网络和变量信息,它的成员函数SerializeToString()可以把这些信息串行
-
tensorflow 大于某个值为1,小于为0的实例
我就废话不多说了,大家还是直接看代码吧~ one = tf.ones_like(label) zero = tf.zeros_like(label) label = tf.where(label <0.5, x=zero, y=one) 补充知识:TensorFlow中获取大于零的元素集合 a为tensor idx = tf.where(a > 0) output = tf.gather_nd(a, idx) 以上这篇tensorflow 大于某个值为1,小于为0的实例就是小编分享给大家的全部
-
tensorflow模型保存、加载之变量重命名实例
话不多说,干就完了. 变量重命名的用处? 简单定义:简单来说就是将模型A中的参数parameter_A赋给模型B中的parameter_B 使用场景:当需要使用已经训练好的模型参数,尤其是使用别人训练好的模型参数时,往往别人模型中的参数命名方式与自己当前的命名方式不同,所以在加载模型参数时需要对参数进行重命名,使得代码更简洁易懂. 实现方法: 1).模型保存 import os import tensorflow as tf weights = tf.Variable(initial_value
-
前端获取http状态码400的返回值实例
如下所示: axios.get("/check_mobile_and_sent_code",{withCredentials:true,params:{mobile:formInline.mobile}}).then(res=>{ console.log(res); //if(res.result==true){ if (!this.timer) { this.count = this.TIME_COUNT; this.show = false; this.timer = set
随机推荐
- windows10安装mysql5.7.18教程
- 深入数据库通用的连接方式详解
- AngularJs定制样式插入到ueditor中的问题小结
- Java数据结构之简单链表的定义与实现方法示例
- Oracle常见错误代码的分析与解决
- 简化php模板页面中分页代码的解析
- Mysql索引详细介绍
- VS中C#读取app.config数据库配置字符串的三种方法
- 本人ajax留言板的源程序 不错的应用js
- 动网论坛的asp 数据库连接代码
- 写CSS_关于Border你可能需要注意的地方第1/2页
- Android解析json数组对象的方法及Apply和数组的三个技巧
- 阿里云添加路由的Windows批处理文件
- 基于barcodescanner实现Android二维码扫描功能
- 使用ETags减少Web应用带宽和负载第1/2页
- 详解Android数据存储之Android 6.0运行时权限下文件存储的思考
- Vue 2.5.2下axios + express 本地请求404的解决方法
- 易语言抓包获得地址实现TP路由器登陆的代码
- 如何通过雪花算法用Python实现一个简单的发号器
- python基于Selenium的web自动化框架