pointnet tf_util.fully_connected

点云深度学习系列5——pointnet++文章及代码分析 大家好。 PointNet++是PointNet的升级版本,增加了对局部信息的感知能力。体现到代码上的话,变化还是比较多的,我们以分类为例,对结构和代码进行分析。 网络结构   首先是网络结构方面,复习前任PointNet网络结构的,请点这里 改进版去掉了T-net,在网络层次上变多了,但是更加组织有序。   def get_model(point_cloud, is_tr... 阅读详情
net = tf_util.fully_connected(net, 512, bn=True, is_training=is_training,
                                  scope='tfc1', bn_decay=bn_decay)
    net = tf_util.fully_connected(net, 256, bn=True, is_training=is_training,
                                  scope='tfc2', bn_decay=bn_decay)

看下具体实现,bn代表batch norm,batch方向的归一化处理

def fully_connected(inputs,
                    num_outputs,
                    scope,
                    use_xavier=True,
                    stddev=1e-3,
                    weight_decay=0.0,
                    activation_fn=tf.nn.relu,
                    bn=False,
                    bn_decay=None,
                    is_training=None):
  """ Fully connected layer with non-linear operation.
  
  Args:
    inputs: 2-D tensor BxN
    num_outputs: int
  
  Returns:
    Variable tensor of size B x num_outputs.
  """
  with tf.variable_scope(scope) as sc:
    num_input_units = inputs.get_shape()[-1].value
    weights = _variable_with_weight_decay('weights',
                                          shape=[num_input_units, num_outputs],
                                          use_xavier=use_xavier,
                                          stddev=stddev,
                                          wd=weight_decay)
    outputs = tf.matmul(inputs, weights)
    biases = _variable_on_cpu('biases', [num_outputs],
                             tf.constant_initializer(0.0))
    outputs = tf.nn.bias_add(outputs, biases)
     
    if bn:
      outputs = batch_norm_for_fc(outputs, is_training, bn_decay, 'bn')

    if activation_fn is not None:
      outputs = activation_fn(outputs)
    return outputs

num_input_units=1024,输出为512在pointnet分类工程中,则声明一个1024,512的weight的tensor一个biases,512,进行归一化

最后设置激活函数,依然是relu

所以,fullyconnet实际是一个正向x*w+b的一个操作,只是通过控制w来控制输出。没有卷积的动作

点云深度学习系列2——PointNet/PointCNN代码比较(变换矩阵部分) PointNet与PointCNN从文章到代码都有很多相似之处,两者对比看待,或许更有助于我们理解。 众所周知,PointNet中使用了maxpooling和T-net,作者文章中起到关键作用的是maxpooling,而T-net对性能的提升作用也还是有的(两个T-net加上regularization 贡献了2.1个百分点),但奇怪的是在PointNet++的代码中,已经看不到T-net了(这... 阅读详情

相关推荐

Fully Connected 神经网络

什么是神经网络 最早的神经网络是想要还原神经元的原理(虽然现在很难说有什么关系),我们将输入乘以不同的权值之后,求和并通过一个非线性函数便可以得到一个输出。这就是最简单的一个神经网络的模型。 其实从数学角度看这个模型更好理解,如果不考虑激活函数,那么其实在单个输出时,我们就是在做线性回归;多个输出时,我们就是在做多分类而已。 而加入了激活函数之后就是加了一个非线性的映射。...

freedom_king的博客 2386

tf2.0没有fully_connected()

tf2.0没有fully_connected()全连接层函数 今天在做卷积层的时候,要做一个全连接层,发现调用 tf.contrib.layers.fully_connected()调用失败,查阅发现tf2.0已经去除了contrib的库,因为该库比较繁琐,不容易维护,所以已经逐渐去除了,contrib库中的layers但是还是保存的,所以有些函数还是存在的,直接调用 tf.compat.v1.layers.有些函数还是存在的,但是fully_connected()已经去除。 显然这里再去想方设法的调用c

毛聿修的博客 3457

点云深度学习系列3——PointNet/PointNet++代码比较

文章就不介绍了,这里主要说代码。 PointNet++是PointNet的升级版本,主要增加了对局部信息的感知能力。体现到代码上的话,变化还是比较多的,我们以分类为例,对二者的实现代码进行对比分析。 首先是网络结构方面,PointNet:   def get_model(point_cloud, is_training, bn_decay=None): """ Classific...

李敏乐的博客 8450

【TensorFlow】全连接层及 tf.contrib.fully_connected 函数

        全连接层在卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数层等是将原始的数据映射到隐层特征空间的话,全连接层则起到将学到的特征表示映射到样本的标记空间的作用。         在实际应用中,全连接层可由卷积操作实现:对于前层是全链接的全连接层,可将其转化为卷积核为1×1的卷积;对于前层是卷积层的全连接层,可将其转化为卷积核为h×w的全局卷积,h和w分别为前层卷积...

McGregorWwww的博客 8448

86 arduino 电机yl_(八)arduino入门:直流电机控制

一、本节介绍在本实验中,您将学习如何使用驱动芯片L293D和SunFounder Uno板控制小型直流(DC)电机的方向和速度。为了使初学者更容易,我们将让直流电机左右旋转,自动加速和减速。二、材料准备1 *小型直流电机1 * L293D1 * Arduino Uno板1 *面包板1 * USB数据线杜邦线三、原理讲解L293D这是一个非常实用的芯片,可以独立控制两台直流电机。在这个实验中,只有一...

weixin_29163857的博客 3568

S32K344 Bootloader实战:一个按键实现从Boot到App的无缝跳转(附完整代码)

本文详细介绍了基于NXP S32K344微控制器的Bootloader开发实战,重点解析如何通过一个硬件按键实现从Boot到App的可靠跳转。内容涵盖内存分区规划、中断向量表重映射、外设初始状态管理等核心要素,并提供了完整的代码示例和调试技巧,适用于汽车电子和工业控制等高可靠性应用场景。

weixin_29192365的博客 307

深度学习算法的点云分割-PointNet(四)

转载自:https://blog.csdn.net/qq_33278989/article/details/80410381今天要聊的论文是斯坦福大学Charles等人在CVPR2017上发表的论文,提出了一种直接处理点云的深度学习网络——PointNet。这篇论文具有里程碑意义,标志着点云处理进入一个新的阶段。为什么会给这么高的评价呢?因为在PointNet之前,点云没办法直接处理,因为点云是三...

tumi678的博客 4965

手把手带你编写miniQMT实盘量化执行程序(3) | 交易系统

本文介绍了miniQMT实盘量化执行系统的核心交易系统代码,重点讲解了其模块化设计和工作流程。系统采用主控类LiveSystem管理交易全流程,包含初始化引擎、交易日判断、交易时段划分(开盘前、盘中、收盘等)、主循环调度和异常处理等核心功能。作者详细解析了系统如何实现365天不间断运行、精准判断交易日、分阶段执行交易策略等功能,并强调系统的稳定性和异常处理机制。

1306

点云算法(深度学习)

点云与深度学习 ​

weixin_41965898的博客 2万+

「大模型学习」(14)Long Context之线性插值、NTK-aware、Yarn、LongRoPE

大语言模型长上下文扩展中的位置插值技术 摘要:为解决大语言模型(LLMs)在推理阶段扩展上下文窗口时的位置编码限制,研究人员开发了一系列位置插值技术。这些方法主要针对旋转位置编码(RoPE)机制,通过不同策略调整位置索引以适应超出训练长度的上下文。典型方法包括:基础位置插值(PI)均匀缩放位置索引;NTK-aware插值对不同频率维度差异化处理;NTK-by-parts插值根据波长分段调整;Yarn插值结合温度调节;以及LongRoPE采用非均匀插值策略。这些技术在不修改模型结构的前提下,通过调整位置编码的

qq_43044037的博客 1644

SAP LTMC实战指南:物料主数据高效导入全解析

本文详细解析了SAP LTMC工具在物料主数据高效导入中的实战应用,包括工具选择、项目搭建、模板定制、数据导入全流程及常见问题解决方案。重点介绍了LTMC的预置模板、LTMOM灵活配置、数据校验机制等核心功能,帮助用户快速掌握SAP数据迁移技巧,提升工作效率。

weixin_33738555的博客 435

pointnet学习(六)train函数第七第八句

第七句 tf.summary.scalar('bn_decay', bn_decay) 查看学习(二)https://blog.csdn.net/guyuezunting/article/details/106830677 第八句 pred, end_points = MODEL.get_model(pointclouds_pl, is_training_pl, bn_decay=bn_decay) 字面意思是获取模型。调用的是配置模型的get_model,这里解读配置的是pointnet_cls.py.

guyuezunting的专栏 640

Android客户端如何设计架构

当我们在新开发一款APP时,我们在初期要如何设计架构呢?在这里我根据我的经验,总结了一些基本的架构思路。 客户端架构设计的时候,首先需要充分考虑到所开发的app的类型,这里我分为功能型和服务型两大类,功能型的app侧重业务和功能,服务型的app侧重服务和运算。下面我就具体来讲讲针对这两种类型的通用架构。 功能型app 功能型app的activity比较多,整个app都以一个个activity承载业务和功能,在设计这类app时,我们需要考虑哪些要素呢? 由于activity比较多,我们需要考虑页面的跳转路由,

子者不语的专栏 1544

3D点云深度学习PointNet源码解析——transform_nets.py (T-net)

参考:https://blog.csdn.net/u014636245/article/details/82763269 transform_nets.py是T-net,完成输入接受与特征提取 T-NetT−Net是一个微型网络,用于生成一个仿射变换矩阵来对点云的旋转、平移等变化进行规范化处理。这个变换/对齐网络是一个微型的PointNet,它输入原始点云数据,输出为一个3∗3 的旋转矩阵 ...

夜晓岚的博客 4281

别再瞎改网络结构了!解决YOLO小目标检测痛点,我用这招把mAP提了15%

本文基于我7年工业PCB缺陷检测、无人机航拍、安防监控项目的一线落地经验,针对YOLO小目标检测最痛的「漏检率高、特征丢失、精度难提升」三大核心问题,拆解出。本文全程配套小目标特征丢失原理图、分块训练流程图、切图前后效果对比图、mAP提升柱状图、多方案性能对比表等可视化内容,从YOLO天生不擅长小目标的底层根源、方案核心原理、可直接复制的代码实现,到工业场景实测验证、新手必踩的10个坑位避坑指南,全链路讲透。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 387

VTK:vtkAssembly用法实战

VTK:vtkAssembly用法实战程序输出程序完整源代码 程序输出 程序完整源代码 #include <vtkActor.h> #include <vtkAssembly.h> #include <vtkAxesActor.h> #include <vtkCubeSource.h> #include <vtkNamedColors.h> #include <vtkNew.h> #include <vtkOrientation

希望我的博客,能帮上你解决学习中工作中所遇到的问题 936

如何高效实现3D点云分类与分割:PointNet完整指南

在三维计算机视觉领域,点云数据因其直接反映真实世界的空间结构而备受关注。然而,传统方法通常需要将无序的点云转换为规则的体素网格或图像集合,这不仅增加了计算复杂度,还可能导致信息丢失。PointNet作为首个直接处理原始点云数据的深度学习框架,通过创新的网络架构解决了这一核心痛点,为3D点云处理开辟了全新的技术路径。 PointNet由斯坦福大学研究团队开发,其核心价值在于能够直接处理无序的点集数

gitblog_00079的博客 406

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

pointnet学习(七)input_transform_net

因为getmodel中第一个net就是此函数,且函数语句较多,所以分开写 首先看函数实现 def input_transform_net(point_cloud, is_training, bn_decay=None, K=3): """ Input (XYZ) Transform Net, input is BxNx3 gray image Return: Transformation matrix of size 3xK """ batch_

guyuezunting的专栏 1261

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

tensorflow 中 fully_connected

from tensorflow.contrib.layers import fully_connected fully_connected 全连接的参数: def fully_connected(inputs, num_outputs, activation_fn=nn.relu, normalizer_fn=None, normalizer_params=None, weights_init...

weixin_43986252的博客 3820

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

全连接函数 tf.contrib.layers.fully_connected

tf.contrib.layers.fully_connected( inputs, num_outputs, activation_fn=tf.nn.relu, normalizer_fn=None, normalizer_params=None, weights_initializer=initializers.xavier_initialize...

LiQingBB的博客 1万+

tf.contrib.layers.fully_connected详解

tf.contrib.layers.fully_connected(F, num_outputs,activation_fn) F ---[batch_size,images_pixels],tensor num_outputs --- numbers of outputs,[batch_size,num_outputs] activation_fn ---采用指定的非线性激励函数,默认不是...

studyvcmfc的专栏 6492

pointnet学习(八)tf_util.conv2d

pointnet学习(七)中input_transform_net函数,通过条用tf_util.conv2d构建net。 tf_util.conv2d(input_image, 64, [1,3], padding='VALID', stride=[1,1], bn=True, is_training=is_training, scope='tconv1', bn_decay=b

guyuezunting的专栏 3327

pointnet tf_util.max_pool2d

net = tf_util.max_pool2d(net, [num_point,1], padding='VALID', scope='tmaxpool') 看下具体实现 def max_pool2d(inputs, kernel_size, scope, stride=[2, 2], padding='VALID'): .

guyuezunting的专栏 555

Pointnet代码解析关键问题

1.分析PointNet结构: 问题一:点云是如何进行MLP的 上次讲过pointnet的基本结构如下图所示, 分析代码,代码中我做了详细注释,可以直接看下面结构图。 def get_model(point_cloud, is_training, bn_decay=None): """ Classification PointNet, input is BxNx3, output Bx40 """ batch_size = point_cloud.get_shape()[0].value

chengle的博客 670

【转载】细嚼慢咽读论文:PointNet论文及代码详细解析

文章转载自知乎 论文标题:PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation 标签:有监督 | 特征学习、点云分类、语义分割 首先回答3个问题作为引子: Q1:什么是点云? 简单来说就是一堆三维点的集合,必须包括各个点的三维坐标信息,其他信息比如各个点的法向量、颜色等均是可选。 点云的文件格式可以有很多种,包括xyz,npy,ply,obj,off等(有些是mesh不过问题不大,因为me

xiaoyaolangwj的博客 2546

Pointnet源码阅读学习---utils/

utils内包含五个.py文件,分别是data_prep_util.py 、eulerangles.py 、 pc_util.py、plyfile.py 、tf_util.py。 其中data_prep_util.py 是为了读取点云数据,将数据存储为plf或者HDF5,结构如下: eulerangles.py实现欧拉角、四元数、旋转矩阵相互转换,结构如下: pc_util.py是关于p...

weixin_41389170的博客 1105
上一篇: pointnet tf_util.max_pool2d
下一篇: pointnet学习(七)input_transform_net
guyuezunting
博客等级 码龄16年 45粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值