自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 最蠢代码?

大概是1 + 1 = 2;都不是1 + 1 == 2?

2023-10-08 09:51:02 249 2

原创 生成对抗网络GAN---first demo

生成对抗网络GAN---first demoGAN概念介绍参考链接:代码参考训练遇到mnist数据集加载不了的问题。GAN概念介绍GAN的全称是Generative adversarial network,中文翻译过来就是对抗式神经网络。对抗神经网络其实是两个网络的组合,可以理解为一个网络生成模拟数据(生成网络Generator),另一个网络判断生成的数据是真实的还是模拟的(判别网络Discriminator)。生成网络要不断优化自己生成的数据让判别网络判断不出来,判别网络也要优化自己让自己判断得更准确

2021-11-03 16:13:43 748

原创 C语言预处理命令:#include/#define/#undef/#if/#elif#ifdef/#ifndef/#endif

预处理命令:#include/#define/#undef/#if/#elif#ifdef/#ifndef/#endif#include 和 #define#include#define#undef#if、#elif、#endif#if(条件编译)#elif#endif#ifdef、#ifndef#ifdef#ifndef**defined函数**#include 和 #define#include#include:使用来包含头文件的预处理命令,其用法包含两种:尖括号<>和双引号"

2021-10-14 20:40:56 1218

原创 python的matlablib画图库------画布fig和坐标轴ax

python的matlablib画图库1、plt.plot 、plt.subplot、plt.subplots关系与区别plt.plotfig.add_subplotplt.subplotplt.subplots2、ax绘图相关的知识点1)去边框2)去掉x、y坐标轴刻度3)设置标题、x和y轴标题4)设置x、y轴表示范围3、柱状图plt.bar()4、画图颜色、形状1、plt.plot 、plt.subplot、plt.subplots关系与区别plt.plot使用命令**fig = plt.figur

2021-08-08 14:09:44 2035

原创 C语言typedef的用法及#define的区别

C语言typedef的用法及#define的区别C语言typedef的用法1、简洁定义2、为已有类型起别名为字符数组起别名为指针起别名3、typedef 和 #define 的区别C语言typedef的用法1、简洁定义C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。而编程中起别名,是为了编程人员编程方便,例如:定义如下结构体struct stu{ int ID; char name[20]; float score[3]; char *data;};要想定义一个结构

2021-06-29 18:24:27 399 9

原创 C语言内存模型(内存组织方式)

C语言内存模型(内存组织方式)c语言编写的程序经过编译完成后,要载入内存(主存或者内存条内),才能运行,变量名、函数名都会对应内存中的一块区域。内存中运行着很多程序,我们的程序只是占其中的一部分空间,这部分空间主要可以细分为以下的区域:程序代码区(code area):存放函数体的二进制代码;静态数据区(data area):也称全局数据区,包含的数据类型比较多,如全局变量、静态变量、一般常量、字符串常量。其中:·全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始

2021-06-24 20:10:46 1666 2

原创 C语言中 char s[] 和 char* s 的区别

char s[] 和 char* s 的区别1、数组本质2、指针指针的指向3、字符数组对于printf("%s",str); 为什么用首地址就可以输出字符串?4、char * 与 char a[ ]char * s 与 char a[ ] 的本质区别5、char ** 和char *a[]char *a[]char ** sC语言指针可以代替数组使用1、数组本质数组是多个元素的集合,在内存中分布在地址连续的单元中,因此可以通过其下标访问数组的不同数组。例如:下面展示一些char s[3] =

2021-06-24 14:32:41 9664 7

原创 Anaconda安装tensorflow 报错

安装参考Tensorflow2.0安装教程(CPU版本,windows环境):安装链接.报错一:在安装命令pip install tensorflow==2.0.0-alpha0 -i http://pypi.doubanio.com/simple中的Http前加上s。报错二:无法找到tensorflow的版本:Could not find a version that satisfies the requirement tensorflow如果python版本是3.7以上,就会发生不兼容,需

2021-04-25 11:53:25 572

原创 Anaconda 创建虚拟环境报错anaconda ValueError: check_hostname requires server_hostname“ when trying to update

当我们在Anaconda Prompt中创建自己的虚拟环境时,如果你开着VPN,那么会出现如下报错:这是一个很简单的问题,就是在开着VPN的时候,网络的端口被更改了,不再使用默认的端口了,因此如果要创建新的虚拟环境处理方法:①:关掉VPN创建虚拟环境;②添加端口号在.condarc文件里。windows:C:\users\username\...

2021-04-25 11:18:04 4144 4

原创 交叉熵损失函数

交叉熵损失函数交叉熵简介信息熵相对熵(KL散度)交叉熵交叉熵简介交叉熵是信息论中的一个重要概念,主要用于度量两个概率分布间的差异性,要理解交叉熵,需要先了解下面几个概念。信息量信息奠基人香农(Shannon)认为“信息是用来消除随机不确定性的东西”,也就是说衡量信息量的大小就是看这个信息消除不确定性的程度。设某一事件发生的概率为P(x),其信息量表示为:I(x)=−log⁡(P(x))I ( x ) = − log ⁡ ( P ( x ) )I(x)=−log⁡(P(x))其中I(x)I (

2021-04-03 19:04:46 281

原创 神经网络的BP算法推导详解

神经网络的BP算法推导详解一.BP算法的提出及其算法思想二.BP算法三.前馈计算的过程四.反向传播的计算一.BP算法的提出及其算法思想神经网络主要是由三个部分组成的,分别是:1) 网络架构 2) 激活函数 3) 找出最优权重值的参数学习算法.BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络。既然我们无法直接得到隐层的权值,能否先通过输出层得到输出结果和期望输出的误差来间接调

2021-04-03 18:57:19 3970

原创 #ifndef, #define, #endif的作用

ifndef, #define, #endif的作用ifndef#ifdef#define1、无参宏定义2、带参宏定义ifndef它是if not define 的简写,是宏定义的一种,实际上确切的说,这应该是预处理功能三种(宏定义、文件包含、条件编译)中的一种----条件编译。在c语言中,对同一个变量或者函数进行多次声明是不会报错的。所以如果h文件里只是进行了声明工作,即使不使用# ifndef宏定义,多个c文件包含同一个h文件也不会报错。但是在c++语言中,#ifdef的作用域只是在单个文件中。

2021-03-16 19:48:21 3702

原创 extern和头文件“x.h”使用的区别和联系

extern和头文件“xxx.h”使用的区别和联系extern关键字extern声明全局变量extern声明外部函数"xxx.h"头文件extern关键字extern关键字可以扩大函数和自变量的使用范围,使得它们可以跨文件被访问。使用方法:首先在cpp文件里面实现这些全局变量和全局函数,这是最基本的,然后只需要在需要用到这些变量和函数的文件里声明一下,用extern修饰声明,这样弄完之后就可以随意使用这些全局变量和全局函数了。请不要为编译器担心,担心它们找不到这些东西,只要你实现了,不怕编译器找不到。

2021-03-16 18:48:42 716

原创 C++中读取txt中的double型数据,保存到程序中的数组中

C++中读取txt中的double型数据,保存到程序中的数组中如下图为txt中的数据文件,复制到excel中进行显示,方便观察顺序,然后读取到程序的结果如下图:代码如下:#include<iostream>#include<fstream>#include<string>#include <typeinfo>const int NUM = 13000;using namespace std;double pointNum[NUM];/

2021-03-11 14:59:07 2468

原创 卡尔曼滤波与目标追踪

卡尔曼滤波与目标追踪为什么要学卡尔曼滤波?卡尔曼滤波是什么?一些概率论的知识基础卡尔曼滤波完整推导状态估计计算卡尔曼增益预测和更新卡尔曼滤波部分我打算分三节(三次博客的内容):卡尔曼滤波与行人状态估计扩展卡尔曼滤波(EKF)与传感器融合过程模型,无损卡尔曼滤波(UKF)与车辆状态轨迹为什么要学卡尔曼滤波?卡尔曼滤波以及其扩展算法能够应用于目标状态估计,如果这个目标是行人,那么就是行人状态估计(或者说行人追踪),如果这个目标是自身,那么就是车辆自身的追踪(结合一些地图的先验,GPS等数据的话就

2020-10-13 00:39:48 3756

原创 无人驾驶---1 激光雷达的地面-非地面分割和pcl_ros实践

激光雷达的地面-非地面分割和pcl_ros实践PCL基本入门在ROS项目中引入PCL库在无人驾驶的雷达感知中,将雷达点云地面分割出来是一步基本的操作,这一步操作主要能够改善地面点对于地面以上的目标的点云聚类的影响。本文首先带大家入门pcl_ros,首先我们使用pcl_ros编写一个简单的ros节点,对输入点云进行Voxel Grid Filter。接着我们在此实践的基础上实现点云地面和非地面的分割节点。PCL基本入门PCL是一个开源的点云处理库,是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源

2020-09-29 09:42:14 1049

原创 ROS入门与实践(2)

ROS入门与实践2ROS C++ Client库(roscpp)本节主要ros的基本编程,我们讲通过Husky模拟器完成一个简易的ROS包,通过实例了解ROS下的CMake文件的语法,然后使用Rviz可视化激光扫描的结果。我们从roscpp入手开始ROS编程学习。ROS C++ Client库(roscpp)下面是使用ros c++ 库编写的一个hello world程序:...

2020-09-22 01:08:13 331

原创 C++创建vector容器报错、cin读入vector报错

C++创建vector容器报错、cin读入vector报错C++报错 “expected parameter declarator”(vector相关)cin读取数据到vector中C++报错 “expected parameter declarator”(vector相关)在C++类中,创建vector容器时,有时会报错: “expected parameter declarator”。vector<int> memory(10);//或者如下:vector<int> m

2020-09-16 18:29:34 3929

原创 ROS入门与实践(1)

ROS入门与实践1 1、ROS简介2、ROS中的概念Master(主机)Node(节点)Topic(主题)Message(消息)catkin 创建系统3、ROS中的项目组织package.xmlCMakeLists.txt4、基于Husky模拟器的实践目前最广泛使用的开源机器人软件平台,ROS(Robot Operating System)极大的提升了机器人开发的效率。目前无人驾驶系统的实际实现仍然依赖于ROS,作为一个相对成熟的机器人软件平台,ROS虽然存在一些缺点,在无人驾驶系统的系统实现上,R

2020-09-15 00:47:34 642

原创 VoxelNet: 基于点云的三维空间信息逐层次学习网络

VoxelNet: 基于点云的三维空间信息逐层次学习网络一、简介二、核心思路总结三、要点分析1. 点云的多层次学习2、点云的高效查询四、总结解释地址:https://arxiv.org/abs/1711.06396一、简介这篇文章主要是对来自2017年苹果公司基于点云的3D物体检测论文"VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection"进行解读。VoxelNet只利用点云数据,在无人驾驶环境下实现了高精度的

2020-09-08 09:30:33 334

原创 子集---组合---排列

子集---组合---排列一、子集本文主要介绍求子集(subset),求排列(permutation),求组合(combination)三种问题,并且都结合回溯的思想解决问题。一、子集leetcode:https://leetcode-cn.com/problems/combinations/solution/hui-su-si-xiang-tuan-mie-pai-lie-zu-he-zi-ji-wen-2/问题描述:输入一个不包含重复数字的数组,要求算法输出这些数字的所有子集。vector&l

2020-09-01 11:42:32 496 1

原创 自动驾驶场景实时高精度的城市道路场景语义分割方法

Real-Time High-Performance Semantic Image Segmentation of Urban Street Scenes1、主要贡献2、相关知识3、方法LBN-AACAM:通道注意力机制独特的空间金字塔池DASPP:空间细节保护网络(SPN)特征融合网络(FFN)总结:文章地址:https://arxiv.org/pdf/2003.08736.pdf网络架构:近年来,深度卷积神经网络(DCNNs)在语义图像分割方面表现出了优异的性能。然而,由于使用复杂的网络架构,

2020-08-25 15:32:54 2037 2

原创 子序列与子串问题(最长公共、最长递增)

子序列与子串问题(最长公共、最长递增)概念1. 最长公共子序列(LCS)1.1 问题描述1.2 思路上一期总结了leetcode 中的关于最长回文子串问题的解决方法,大概分为:暴力枚举、动态规划、马拉车算法(Manacher)、中心扩展等,其中有一种可以转换为最长公共子串解决的方法,顿时想到了许多关于子串和子序列的众多问题,其中包括最长公共子序列和最长公共子串的问题,最长递增子序列的问题等等,现在做一下总结。概念(1)字符子串:指的是字符串中连续的n个字符,如abcdefg中,ab,cde,fg等都属

2020-08-18 16:58:04 378

原创 最长回文子串(Longest Palindromic Substring)

最长回文子串(Longest Palindromic Substring)题目解析题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”解析子串(substring):原始字符串的一个连续子集;子序列(subsequence):原始字符串的一个子集;区别:子串连续,子序列不必连续一般处理:先计算出子串的长度

2020-08-11 22:16:46 2809

原创 STL | Map(映射)的使用

STL | Map(映射)的使用一. 定义一个Map(映射)二. 插入数据三. Map容器的大小四. 遍历Map容器五.判定关键字是否在Map中的方法六.Map的基本操作函数七.对Map进行排序①自然数值key的排序②非数值类型的key排序重载小于号仿函数的应用八.Map的删除Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力。由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。ma

2020-08-03 18:16:39 543

原创 整数快速幂 & 快速幂取模

整数快速幂 & 快速幂取模快速幂a^b^的朴素算法快速幂的原理快速幂【代码】快速幂取模幂取模的朴素的实现快速幂取模原理快速幂取模【代码】矩阵快速幂矩阵快速幂【代码】例题P1226 【模板】快速幂||取余运算P3390 【模板】矩阵快速幂快速幂所谓的快速幂,其目的是为了快速求幂,将时间复杂度从O(n)朴素算法的降到O(logn)。假如现在要求ab,按照朴素算法,就是将a连乘b次,时间复杂度为O(b),即O(n)级别。ab的朴素算法// O(n)#include<cstdio>

2020-07-27 11:58:17 858

原创 vector的排序与查找的运算符重载问题(sort&find)

vector的排序与查找的运算符重载问题(sort&find)Sort()函数和find()函数重载运算操作符:vector重载运算符“<”和“==”,进行排序和查找实例一:对struct结构体进行排序、查找实例二:对class类进行排序和查找Sort()函数和find()函数Sort函数:主要用于对无序的序列进行操作后得到有序的序列。std::find()函数的原型声明:template <class RandomAccessIterator> void sort (

2020-07-20 19:54:25 2072

原创 Visual Studio运行C++程序遇到“无法识别标识符”的问题

Visual Studio运行C++程序遇到“无法识别标识符”的问题问题描述:一般是指在使用函数、变量前未定义,或者未包含有对应变量、函数的定义和实现的库或文件,这是其中比较常见的问题。以上情况可能经常出现,同样在Visual Studio中也会遇到上面情况都满足了,但是还是会有“无法识别标识符”的情况。有一种就是自己定义实现的函数,放在的main入口函数之后定义和实现的,在程序首先进入到main函数中,运行到调用的自己的函数,并未找到该函数的实现,则会报““无法识别标识符””。解决办法:1、可以

2020-07-14 18:42:05 16323

原创 Visual Studio运行C++代码遇到:“error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR...“问题,该怎么办?

问题:C++代码报错”error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR…“原因:在选择"新建"→"项目"→"visual C++“→"win32”,后面有win32控制台程序和win32项目(直接运行的windows项目)两种,在选择这个的时候和程序中的主函数入口没有对应上:“win32项目”对应WinMain的入口函数,“win32控制台应用程序”对应main的入口函数,当要用main函数作为入口函数时(即作为控制台程序),而报以上错误就是可能

2020-07-14 18:22:47 3349

原创 递归神经网络Recurrent Neural Networks

循环神经网络Recurrent Neural Networks介绍时序预测问题前馈网络与递归网络对比递归网络特点递归网络数据的输入输出递归网络问题LSTM/GRURNN问题Long Short Term Memory (LSTM)门(gate)的理解理解LSTM的数学公式:信息流普通RNN与LSTM的比较Gated RNNs的变种实现LSTM处理训练数据权重初始化方法定义LSTM类构建网络训练网络预测效果总结双向LSTM&GRU介绍时序预测问题用前馈神经网络来做时序信号预测有什么问题?前馈网络

2020-07-13 23:59:19 1624

原创 排序算法详解及代码

排序算法排序算法介绍一、插入排序---直接插入排序(Insertion Sort)二、插入排序---希尔排序(Shell`s Sort)三、交换排序---冒泡排序(Bubble Sort)四、选择排序---简单选择排序(Simple Selection Sort)五、选择排序---堆排序(Heap Sort)六、交换排序---快速排序(Quick Sort)排序算法介绍排序算法一般是指将有数字大小关系的序列,对其进行操作,得到一次有序的序列关系。内部排序:内部排序算法(只访问内存),外部排序是因排序

2020-07-06 19:00:53 289

原创 word embedding词嵌入

word embedding词嵌入One hot representationDistributed representation神经网络分析Word embedding训练方法word embedding的功能一般提现在文字序列预测中,比如存在于LSTM网络中。它的功能类同将图片在计算机中以像素的存储方式一样,对序列中的每一个元素进行编码,形成自己的表达序列的独特方式。序列中表达单词的方式有One hot representation和Distributed representation。One h

2020-07-06 18:19:39 317

原创 卷积神经网络CNN特点功能及其缺陷

卷积神经网络CNN特点功能及其缺陷卷积神经网络(CNN)中的模块及其功能作用CNN的目的特征卷积与特征提取卷积的特点:局部感知、参数共享、多核Down-Pooling多层卷积池化激活函数的意义LRN的催化与抑制Dropout的作用卷积神经网络中的局部连接卷积神经网络中的权值共享卷积神经网络的平移不变性卷积的缺陷坐标建模的任务上(如目标检测、图像生成等)的缺陷卷积神经网络(CNN)中的模块及其功能作用CNN的目的CNN的目的是以一定的模型对事物进行特征提取,而后根据特征对该事物进行分类、识别、预测或决策

2020-06-22 15:14:09 44496 3

原创 大场景三维点云语义分割模型

大场景三维点云语义分割模型基于2D的方法SqueezeSeg系列一、简介二、核心思路总结三、要点分析四、总结近来关于在无人驾驶场景的大场景点云语义分割方法异常火热,也崩出很多好的idea,这些方法大致分为两类,基于2D的和基于3D的。2D的基本思路是将点云按照某种方式投影到2D平面,并应用成熟的2D语义分割网络做处理。3D的方法一般是直接在3D空间提取特征信息。还有一些方法会融合图像的信息来帮助点云的语义分割。基于2D的方法SqueezeSeg系列SqueezeSeg(https://github

2020-06-14 15:39:50 4339

原创 VAE:变分自编码器(Variational Auto-Encoder,VAE)

VAE---变分自编码器1、AE模型回顾2、关于分布3、VAE的思路与实现4、VAE的原理5、本质6、总结1、AE模型回顾AE(Auto-Encoder)模型,它的逻辑如下所示:其中,x是真实数据构成的样本空间里面的一个采样值,z是Encoder编码得到的latent code(隐编码),最后经过Decoder解码出来一个接近x的值。理论上,x的数量是无限的。实际操作时,只能获取有限个采样值,构成训练数据集,比如ImageNet、COCO等数据集中的图片,可以看成是从真实世界中采样(拍照)得到的有

2020-06-11 17:47:09 2660

原创 深度学习问题集锦

问题描述深度学习训练中断后继续训练时,loss变大,精度下降,随机种子不变。有什么原因会导致这种情况?理解全连接层深度学习训练中断后继续训练时,loss变大,精度下降,随机种子不变。有什么原因会导致这种情况?可能先要搞清楚,loss变大,是否真的跟“训练中断”有关系。有下面两种可能:1)如果代码没有问题,中断之前的learning rate应该与继续训练开始时是一样的。这种情况,有没有中断,应该没有影响。loss变大的原因,可能是此时的learning rate太大了,需要变小一些。2)如果你有使用

2020-06-11 17:36:16 349

原创 Rotation - 旋转

Rotation - 旋转1. 二维空间中的旋转1.1 旋转矩阵1.2 复数坐标2. 三维空间中的旋转2.1 旋转矩阵2.2 四元数(quaternion)几种旋转方式的实现。1. 二维空间中的旋转假设平面内任意一点的坐标是 (x,y),绕坐标原点逆时针旋转的角度是 θ,旋转后的坐标(x^\hat xx^,y^\hat yy^​),有以下几种方法来计算旋转后的坐标:1.1 旋转矩阵1.2 复数坐标2. 三维空间中的旋转2.1 旋转矩阵按照右手螺旋法则,拇指指向轴的方向,其它指头的方向

2020-06-11 17:29:36 2718

原创 3D点云模型总结

3D点云模型总结点云数据预处理 FAQ1. 点云有哪些常用的数据集?2. 点云中点的个数如何确定?3. 如何划分train/val/test ?4. 如何归一化?5. 如何shuffle?6. 数据增强(augmentation)Farthest Point Sampling (FPS)算法核心思想解析1. 逻辑描述2. 算法原理3. 算法分析PointNet++: classification笔记1. Set Abstraction模块2. 分类网络总体结构3. 总结cuda编程基础:PointNet++

2020-06-10 16:39:54 7906 2

原创 三维点云语义分割模型总结

三维点云语义分割模型总结1.PointNet(CVPR2017)1.1 网络基本架构功能介绍1.2 网络的两个亮点:1.3 解决问题详细方案1.4 实验结果和网络的鲁棒性1.5 pointnet代码详解2.PointNet ++(NIPS 2017)2.1 网络基本架构功能介绍:2.2 网络的亮点:2.3 解决问题详细方案2.4 PointNet++代码解析3. PointSIFT4. Exploring Spatial Context for 3D Semantic Segmentation of Poi

2020-06-03 17:50:34 2360

原创 三维点云语义分割基础知识

三维点云语义分割基础知识1. 简介1.1 点云分割介绍1.2 三维数据表达方式1.3 点云的特点及优势2 研究现状2.1 基于人工特征和机器学习的方法2.2 基于深度学习的方法1. 简介1.1 点云分割介绍点云分割,即对点云中的每个点赋予有意义的标注,标注代表可以是任何具有特定意义的信息。在实际应用中,通常是一组代表几种特定类别标签的一个。如果标签具有特定含义,如是一个场景的物体类别,那么这个过程就是一个场景的分割或称语义理解。机器学习技术的进步也使得三维数据理解受益匪浅,尤其是对密集点云这样的大量

2020-05-26 16:55:25 7099

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除