- 博客(49)
- 资源 (30)
- 收藏
- 关注
原创 std::call_once()
std::call_once():该函数的第一个参数为标记,第二个参数是一个函数名。功能:能够保证多线程调用函数func()时只被调用一次。具备互斥量的能力,而且比互斥量消耗的资源更少,更高效。call_once()需要与一个标记结合使用,这个标记为std::once_flag;其中once_flag是一个数据结构,call_once()就是通过标记来决定函数是否执行,调用成功后,就把标记设置为一种已调用状态。std::once_flag my_flag;void func(){}std::ca
2020-05-31 21:36:48 647
原创 C++ 多线程 (4) 互斥量(mutex)与锁(lock)
文章目录一、基本概念二、使用方法2.1 mutex.lock(),unlock()2.2 std::lock_guard类模板2.3.1 std::lock_guard的std::adopt_lock参数2.4 std::unique_lock函数模板2.4.1 unique_lock的第二个参数std::lock()函数模板三、死锁3.1 发生原因3.2 解决办法一、基本概念在多线程环境中,有多个线程竞争同一个公共资源,就很容易引发线程安全的问题。因此就需要引入锁的机制,来保证任意时候只有一个线程在访
2020-05-31 12:16:20 3085
原创 C++ 多线程(3)std::thread 详解
文章目录一、头文件二、std::thread 构造函数三、其他成员函数四、传递临时参数作为线程对象的注意事项4.1 **解决办法:**4.2 原因分析4.3 总结五、传递类对象、智能指针作为线程参数5.1 修改子线程中的对象,不会影响主线程中的对象5.2 传递智能指针参考链接:一、头文件std::thread 在 头文件中声明,因此使用 std::thread 时需要包含 头文件。二、std::thread 构造函数(1). 默认构造函数,创建一个空的 thread 执行对象。(2). 初始
2020-05-30 21:18:55 15264
原创 c++ 多线程(2)创建线程对象的方法
文章目录一、用函数对象创建线程二、用类对象创建线程三、把某个类中的某个函数作为线程的入口地址四、用lambda表达式创建线程一、用函数对象创建线程// 用函数对象创建线程#include <iostream>#include <thread>using namespace std;void func(){ cout<<"我的线程开始执行了"<<endl; //... cout<<"我的线程结束执行了"<&
2020-05-30 15:10:56 1091 2
原创 CMake解决c++11的phread库问题:undefined reference to `pthread_create’
方法一PROJECT(HELLO)set(CMAKE_CXX_FLAGS "${CAMKE_CXX_FLAGS} -std=c++11")AUX_SOURCE_DIRECTORY(. SRC_LIST)ADD_EXECUTABLE(hello ${SRC_LIST})从cmake的CMakeLists.txt文件中可以看出cmake是像g++使用c++11特性一样,都有-std=c++11,所以像一样加个-pthread解决就行。PROJECT(HELLO)set(CMAKE_CXX_FLA
2020-05-30 14:50:57 1286
原创 生成对抗网络--Generative Adversarial Networks (GAN)
文章目录一、简介二、原理三、网络结构四、实例:自动生成数字0-9五、训练GAN的技巧六、源码打赏一、简介●lan Goodfellow 2014年提出●非监督式学习任务●使用两个深度神经网络: Generator (生成器), Discriminator(判别器)二、原理举一个制造假钞的例子:生成器:制造假钞的人判别器:警察训练过程:制造假钞的人生产假钞警察判断是否是假钞,如果认为是假钞,说明假钞与真钞存在区别制造假钞的人按照警察给出的反馈改进假钞制造工艺重复以上3个步骤,直
2020-05-26 11:27:57 1492
原创 语义分割(semantic segmentation)——U-Net
一、定义语义图像分割的目标是标记图像每个像素的类别。因为我们需要预测图像中的每个像素,所以此任务通常被称为密集预测。二、参考资料论文:U-Net: Convolutional Networks for Biomedical Image Segmentation三、网络结构四、Transposed Convolutions/ Deconvolution/up convolutions卷积和池化的输出相对于输入尺寸缩小。池化通过增加视场,帮助我们理解图像中的物体是什么,但是这个操作也丢失了物体的
2020-05-26 07:58:16 444
原创 目标检测SSD: Single Shot MultiBox Detector原理详解
文章目录一、前言1.1 什么是目标检测1.2 Single-shot V.S. R-CNN家族1.3 SDD的优点二、SSD的设计理念2.1 采用多尺度特征图用于检测2.2 采用卷积进行检测2.3 设置先验框(anchor)三、SSD的定位原理四、SSD的网络结构五、先验框的选择原则5.1 确定先验框的尺寸5.2 确定先验框的长宽比5.3 确定先验框的位置六、先验框匹配七、损失函数八、数据增强九、非极大值抑制(Non-max suppression)十、预测过程参考资料参考链接:参考文献:多种框架实现打赏
2020-05-25 23:04:10 1039
原创 目标检测SSD: Single Shot MultiBox Detector
目录一、前言1.1 什么是目标检测1.2 Single-shot V.S. R-CNN家族1.3 SDD的优点二、SSD的设计理念2.1 采用多尺度特征图用于检测2.2 采用卷积进行检测2.3 设置先验框(anchor)三、SSD的定位原理四、SSD的网络结构五、先验框的选择原则5.1 确定先验框的尺寸5.2 确定先验框的长宽比5.3 确定先验框的位置六、先验框匹配七、损失函数八、数据增...
2020-05-25 23:04:00 326
原创 基于内容的图像检索(CBIR) ——以图搜图
文章目录一、实现原理二、 基于内容的图像检索的特征提取三、代码实现打赏在CBIR中,图像通过其视觉内容(例如颜色,纹理,形状)来索引。一、实现原理首先从图像数据库中提取特征并存储它。然后我们计算与查询图像相关的特征。最后,我们检索具有最近特征的图像二、 基于内容的图像检索的特征提取在这篇研究论文中(https://arxiv.org/pdf/1404.1777.pdf),作者证明了为分类目的而训练的卷积神经网络(CNN) 可用于提取图像的“神经代码”。这些神经代码是用于描述图像的特征。研究表明
2020-05-25 15:51:29 7927
原创 去噪自动编码器
降噪自动编码器是一种用于图像去噪无监督的反馈神经网络原理如下图所示训练代码如下from keras.layers import Input, Conv2D, MaxPooling2D, UpSampling2D, ZeroPadding2Dfrom keras.models import Modelfrom keras.callbacks import TensorBoardfrom keras.datasets import mnistimport numpy as np(x_trai
2020-05-25 15:20:58 4630
原创 深度残差网络(Deep residual network, ResNet)
文章目录一、背景二、残差学习2.1一、背景深度残差网络(Deep residual network, ResNet)的提出是CNN图像史上的一件里程碑事件,让我们先看一下ResNet在ILSVRC和COCO 2015上的战绩:ResNet取得了5项第一,并又一次刷新了CNN模型在ImageNet上的历史,ImageNet分类Top-5误差:那么ResNet为什么会有如此优异的表现呢?其实ResNet是解决了深度CNN模型难训练的问题,从图2中可以看到14年的VGG才19层,而15年的ResNe
2020-05-25 15:04:23 5415
原创 图像理解(Image Captioning)(2)文本处理和模型
图像理解一、文本处理1.1 生成图像的描述文件2.2 单词嵌⼊(Word Embedding)2.3 生成输入数据结构二、模型处理2.1 创建用于图片理解的模型2.2 模型评价三、 总结一、文本处理1.1 生成图像的描述文件根据数据集中的Flickr8k.token.txt文件生成含有图片对应的描述的文件def create_descriptions(filename): with open(filename, 'r') as file_read: with open("
2020-05-19 13:20:38 1592
原创 图像理解(Image Captioning)(1)CNN部分
Image Captioning一、 应用领域二、 原理三、使用的环境与数据集一、 应用领域图像搜索安全监控鉴黄二、 原理CNN(卷积神经⽹络)图像特征提取迁移学习(transfer learning)LSTM(递归神经⽹络)⽂字串(sequence)的特征提取DNN(深度神经⽹络)从图像特征和⽂字串(sequence)的特征预测下⼀个单词通过链接这两个网络,使用CNN提取图像特征,再使用LSTM提取文本特征,再通过多层的DNN网络即可实现将
2020-05-19 12:48:06 1534
原创 解决Anaconda和Ros的python和opencv等的版本冲突问题
安装 ros 后,Anaconda envs 环境 import cv2 出错原因:在 ~/.bashrc 中写入 source /opt/ros/kinetic/setup.bash 之后,默认会把 /opt/ros/kinetic/lib/python2.7/dist-packages 路径加入到 PYTHONPATH 环境变量中解决方法:删除 anaconda envs 环境变量中的 ros 相关路径import sysros_cv2_path = '/opt/ros/kinetic/l
2020-05-19 11:10:38 501
原创 如何在Jupyter Notebook中使用Python虚拟环境?
为了让Jupyter Notebook支持虚拟运行环境,需要在Anaconda里安装一个插件。回到终端下面,退出目前正在运行的Jupyter Notebook Server,然后执行:conda install nb_conda再重新开启Jupyter Notebook:jupyter notebook这下我们就能看到差别了——除了最新安装设定的tfpy3外,之前用Anaconda设置过的其他虚拟环境也都可以在此选择使用。太棒了!...
2020-05-16 16:46:00 656
原创 W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
这玩意儿是因为你在Linux下没有安装因特尔的图形固件。而这个固件这两年因特尔已经发布了。所以我们只需要去下载就好了。首先去到这个网址,你会看到很多固件的选择项,你选择自己缺的那个点击进去。https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915进去以后呢,点击pla...
2020-05-16 01:50:00 673 1
原创 python 分离文件名和路径 以及 分离文件名和后缀
分离路径和文件名:os.path.split()区分文件的名字和后缀:os.path.splitext()import os file_path = "D:/test/test.py"(filepath, tempfilename) = os.path.split(file_path)(filename, extension) = os.path.splitext(...
2020-05-12 22:55:00 1234
原创 梯度下降优化算法
梯度下降优化算法一、简介二、梯度下降方法2.1 批量梯度下降法BGD2.2 随机梯度下降法SGD2.3 小批量梯度下降法MBGD三、传统梯度下降法面临的挑战四、改进的梯度下降算法4.1 Momentum4.2 Nesterov accelerated gradient4.3 Adagrad4.4 RMSprop4.5 Adam4.6 对比与选择五、Tips一、简介二、梯度下降方法一般线性回归函数的假设函数为:以平方差损失函数的形式为例:2.1 批量梯度下降法BGD批量梯度下降法(Batch
2020-05-12 11:44:37 2843
原创 欠拟合(Under fitting)和过拟合 (Overfitting)
过拟合一、定义二、过拟合的解决方案2.1 DropOut2.2 L2 正则化2.3 L1 正则化2.4 最⼤范数约束 (Max Norm)一、定义在训练数据集上的准确率很⾼,但是在测试集上的准确率⽐较低二、过拟合的解决方案2.1 DropOut假设有一个过拟合的神经网络如下:DropOut步骤:根据DropOut rate(这里假设为 1/3),在每组数据训练时,随机选择每一隐藏层的1/3的节点去除,并训练。如下图是三次训练的过程:2. 使用时,把神经网络还原成原来没有去除过节点的样子
2020-05-10 18:04:16 1179
原创 过拟合 (Overfitting)
过拟合一、定义二、过拟合的解决方案2.1 DropOut2.2 L2 正则化2.3 L1 正则化2.4 最⼤范数约束 (Ma...
2020-05-10 18:04:00 137
原创 梯度消亡(Gradient Vanishing)和梯度爆炸(Gradient Exploding)
梯度消亡一、定义二、梯度消亡(Gradient Vanishing)前提三、产生的原因四、解决方案一、定义神经⽹络靠输⼊端的⽹络层的系数逐渐不再随着训练⽽变化,或者变化⾮常缓慢。随着⽹络层数增加,这个现象越发明显二、梯度消亡(Gradient Vanishing)前提使⽤基于梯度的训练⽅法(例如梯度下降法)使⽤的激活函数具有输出值范围⼤⼤⼩于输⼊值的范围,例如logistic(逻辑斯函数), tanh(双曲正切)三、产生的原因梯度下降法依靠理解系数的微⼩变化对输出的影响来学习⽹络的系数
2020-05-10 17:16:32 4360
原创 损失函数
损失函数一、定义二、命名三、损失函数的作用3.1 训练方法3.2 损失函数的选取原则四、常用的损失函数4.1 回归Regression问题4.2 分类Classification问题4.2.1 单label问题4.2.2 多label问题一、定义在深度学习中,损失函数是用来衡量一组参数的质量的函数,衡量的方式是比较网络输出和真实输出的差异。二、命名 损失函数 loss function = 代价函数cost function=目标函数objective function = 误差函数erro
2020-05-10 14:49:52 517
原创 一个例子秒懂误差反向传播
假设有两个输入值,一个隐藏节点,一个输出节点,隐藏层和输出层的激活函数都是 sigmoid 。下图描述了这个网络。假设损失函数是平方误差L=1/2(y-y^) 2一、正向传播假设我们试着输入一些二分类数据,目标是 y=1。我们从正向传导开始,首先计算输入到隐藏层h=∑wixi=0.1×0.4−0.2×0.3=−0.02隐藏层的输出 (激活函数f=sigmoid)a=f(h)=sigmoid(−0.02)=0.495.把它作为输出层的输入,神经网络的输出是:y^=f(W
2020-05-09 22:18:56 877
原创 使用keras构建简单的网络分类鸢尾花
Tensorflow =1.8.0# -*- coding: utf-8 -*-from warnings import simplefiltersimplefilter(action='ignore', category=FutureWarning)import numpy as npimport pandas as pdfrom keras.models import Sequential # 链式构建模型from keras.layers import Dense # 全连接
2020-05-09 21:11:59 380
原创 矩阵的秩 rank(A)
矩阵的秩一、定义二、定理一、定义在线性代数中,一个矩阵A的列秩是A的线性独立的纵列的极大数目。类似地,行秩是A的线性无关的横行的极大数目。二、定理定理:矩阵的行秩,列秩,秩都相等。定理:初等变换不改变矩阵的秩。定理:如果A可逆,则r(AB)=r(B),r(BA)=r(B)。定理:矩阵的乘积的秩rank(ab)<=min{rank(a),rank(b)};...
2020-05-09 14:06:47 7045 1
原创 矩阵的迹
矩阵的迹一、定义二、性质2.12.22.3 迹等于特征根之和2.4三、二次型的迹3.13.2四、迹的导数一、定义线性代数中,把方阵的对角线之和称为“迹”:二、性质2.12.2一直将第一个矩阵放到最后一个;当然反着不断把最后一个放到第一个也可以。2.3 迹等于特征根之和由定义而来,这是最常见的性质了,注意:相似矩阵的迹相同2.4x,y都是 n 维列向量三、二次型的迹3.13.2四、迹的导数参考:https://zhuanlan.zhihu.com/p/4917686
2020-05-09 13:51:36 8179
原创 第一部分——状态估计机理(1)-- 概率论基础
概率论基础一、概率密度函数1.1 定义1.2 贝叶斯公式及推断1.3 矩1.4 样本均值和样本方差1.5 统计独立性与不相关性1.6 归一化积1.7 负熵和互信息1.8 克拉美罗下界和费歇尔信息量二、高斯概率密度函数2.1 定义2.2 Isserlis定理2.3 联合高斯概率密度函数,分解与推断2.4 统计独立性,不相关性2.5 高斯分布随机变量的线性变换2.6 高斯概率密度函数的归一化积2.7 ...
2020-05-08 13:49:24 3358 2
原创 STL——(11)常用算法
常用算法1 常用遍历算法1.1 for_each1.2 transform2 常用查找算法2.1 find2.2 find_if2.3 adjacent_find2.4 binary_search2.5 count2.6 count_if3 常用排序算法3.1 sort3.2 random_shuffle3.3 merge3.4 reverse4 常用拷贝和替换算法4.1 copy4.2 repl...
2020-05-03 20:45:52 631
原创 STL——(10)函数对象(仿函数)
函数对象1 函数对象概念1.1 函数对象使用2 谓词2.1 谓词概念2.2 一元谓词2.3 二元谓词3 内建函数对象3.1 内建函数对象意义3.2 算术仿函数3.3 关系仿函数3.4 逻辑仿函数1 函数对象概念概念:重载函数调用操作符的类,其对象常称为函数对象函数对象使用重载的()时,行为类似函数调用,也叫仿函数本质:函数对象(仿函数)是一个类,不是一个函数1.1 函数对象...
2020-05-03 20:34:28 345
原创 STL——(9)map/ multimap容器
map/ multimap容器1. map基本概念2. map构造和赋值3. map大小和交换4. map插入和删除5. map查找和统计6. map容器排序10. 案例-员工分组10.1 案例描述10.2 实现步骤1. map基本概念简介:map中所有元素都是pairpair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)所有元素都会根据元素的键值自动排序...
2020-05-03 20:27:24 186
原创 STL——(8)set/ multiset 容器和pair对组
set/ multiset 容器和pair对组1 set基本概念2 set构造和赋值3 set大小和交换4 set插入和删除5 set查找和统计6 set和multiset区别7 pair对组创建8 set容器排序1 set基本概念简介:所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉树实现。set和multiset区别:set不...
2020-05-03 19:28:20 281
原创 STL——(7)list容器
list容器1. list基本概念2 list构造函数3 list 赋值和交换4 list 大小操作5 list 插入和删除6 list 数据存取7 list 反转和排序8 排序案例1. list基本概念**功能:**将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存...
2020-05-03 19:23:50 421
原创 STL——(6)queue 容器
3.6.1 queue 基本概念概念:Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口队列容器允许从一端新增元素,从另一端移除元素队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为队列中进数据称为 — 入队 push队列中出数据称为 — 出队 pop3.6.2 queue 常用接口功能描述:栈容器常用的对外接...
2020-05-03 19:16:57 102
原创 STL——(5)stack容器
stack容器1. stack 基本概念2. stack 常用接口1. stack 基本概念概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为 — 入栈 push栈中弹出数据称为 — 出栈 pop2. stack 常用接口功能描述:栈容器常用的对外...
2020-05-03 19:11:38 97
原创 STL——(4)deque
deque容器1. deque容器基本概念2. deque构造函数3. deque赋值操作4. deque大小操作5. deque 插入和删除6. deque 数据存取7. deque 排序8. 案例-评委打分8.1 案例描述8.2 实现步骤1. deque容器基本概念功能:双端数组,可以对头端进行插入删除操作deque与vector区别:vector对于头部的插入删除效率低,数...
2020-05-03 16:57:11 145
预积分总结与公式推导20180827.pdf
2020-09-26
matplotlib颜色参数.docx
2020-06-19
fake.mnist.gan.py
2020-05-26
unet_semantic_segmentation.py
2020-05-26
res50完整源代码
2020-05-25
trafic-signs-recognition.tar.gz
2020-05-21
图像理解image_caption.tar.gz
2020-05-19
ROS与navigation教程.pdf
2019-10-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人