自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 工程实践_Docker简介

Docker和容器技术为了这么火爆?核心原因就是“轻”。在容器技术之前,业界的网红是虚拟机。虚拟机技术的代表是VMWare和OpenStack。虚拟机就是在我们的操作系统里装一个软件,然后通过这个软件再模拟一台甚至多台“子电脑”出来。在“子电脑”里,我们可以和正常电脑一样运行程序,例如打开微信。如果我们愿意,我们可以变出好几个“子电脑”,里面都开上微信。“子电脑”和“子电脑”之间,是相互隔离...

2019-12-31 15:33:40 192

原创 深度学习_硬件知识_实时时钟(RTC)

实时时钟的缩写是RTC(Real_Time Clock)。RTC是集成电路,通常称为时钟芯片。实时时钟芯片是日常生活中应用最为广泛的消费类电子产品之一。它为人们提供精确的实时时间,或者为电子系统提供精确的时间基准,目前实时时钟芯片大多采用精度较高的晶体振荡器作为时钟源。有些时钟芯片为了在主电源掉电时,还可以工作,需要外加电池供电。...

2019-12-30 17:25:12 1101

原创 机器学习_监督学习、非监督学习、半监督学习以及强化学习概念介绍

机器学习中通常根据数据是否有标签可以分为监督学习(supervised learning)、非监督学习(unsupervised learning) 和半监督学习(semi-supervised learning)。如果需要算法与环境交互获得数据则是强化学习(reinforcement learning)。一.监督学习监督学习的意思就是用来训练网络的数据,我们已经知道其对应的输出,这个输出可以...

2019-12-29 20:00:28 2153

原创 C/C++_enum(枚举)

枚举是C语言中的一种基本数据类型,它可以让数据更简洁,更易读。枚举语法定义格式为:enum 枚举名称 {枚举元素1,枚举元素2,...};接下来我们举一个例子,比如一个星期有7天,如果不用枚举,我们需要使用 #define来为每个整数定义一个别名:#define Mon 1#define TUE 2#define WED 3#define THU 4#define FRI ...

2019-12-28 10:17:02 280

原创 算法面试_最长不含重复字符的子字符串

题目: 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。假设字符串中只包含‘a’-‘z’的字符。解题思路: 我么们可以用动态规划的方法来进行思考。首先定义函数f(i)表示以第i个字符为结尾的不包含重复字符的子字符串的最长长度。我们从左到右逐一扫描字符串中的每个字符。当我们计算以第i个字符为结尾的不包含重复字符的子字符串的最长长度f(i)时,我们已经得到f(i-1)了...

2019-12-26 22:54:08 316

原创 深度学习_人脸检测_基于多任务卷积神经网络(MTCNN)论文详解

MTCNN工作流程图首先我们看一下MTCNN的工作流程图:MTCNN的模型结构MTCNN模型有三个子网络。分别是P-Net,R-Net,O-Net。Proposal Network(P-Net):该网络结构主要获得了人脸区域的候选窗口和边界框的回归向量。并用该边界框做回归,对候选窗口进行校准,然后通过非极大值抑制(NMS)来合并高度重合的候选框。Refine network(R-N...

2019-12-25 13:44:07 1755

原创 深度学习_人脸检测概述

在目标检测领域可以划分为人脸检测与通用目标检测,往往人脸检测这方面会有专门的算法(包括人脸检测、人脸识别、人脸其他属性的识别等等),并且和通用目标检测(识别)会有一定的差别,这主要是因为人脸的特殊性(有时候目标比较小、人脸之间特征不明显、遮挡问题等),下面我们将从人脸检测和通用检测两个方面来讲解目标检测。...

2019-12-24 22:22:07 556

原创 深度学习环境框架搭建debug_Ubuntu下Caffe快速配置及debug

首先,我们可以参照官方文档,官方文档是最直接最权威的:Caffe官方配置文档接下来我们介绍具体步骤:前置条件Nvidia显卡驱动安装。Cuda和CuDnn设置。一些依赖项这些依赖项安装可以直接从软件源获取,当然也可以自己源码安装。下面是相应的命令行代码:# protobuf,snappy,leveldb,opencv,hdf5,boost ,python-opencv,glo...

2019-12-24 16:49:55 209

原创 深度学习框架_Caffe_Caffe框架入门简介

一.什么是CaffeCaffe的全称应该是Convolutional Architeure for Fast Feature Embedding,它是一个清晰、高效的深度学习框架,它是开源的,核心语言是C++,他支持命令行、Python和Matlab接口,它既可以在CPU上运行也可以在GPU上运行。它的liense是BSD 2-Clause。二.Caffe的特点模块化:Caffe从一开始就...

2019-12-23 22:56:14 1910

原创 深度学习_GAN_LSGAN

LSGAN(Least Squares GAN)这篇文章主要针对标准GAN的稳定性和图片生成质量不高做了一个改进。作者将原始GAN的交叉熵损失采用最小二乘损失替代。LSGAN的Loss:min⁡DJ(D)=min⁡D[12Ex∼pdata(x)[D(x)−a]2+12Ez∼pz(z)[D(G(z))−b]2]\mathop{\min }\limits_DJ(D)=\mathop{\min}\li...

2019-12-23 09:51:33 597

原创 算法面试_两数之和为S系列题目

题目1: 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等与s,则输出任意一对即可。题目3: 给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。思路: 使用map和vector进行一次遍历,时间复杂度为...

2019-12-22 19:57:45 268

原创 工程实践_POC验证测试的概念

POC(Proof of Concept),即概念验证。通常是企业进行产品选型时或开展外部实施项目前,进行的一种产品或供应商能力验证工作。验证内容:产品的功能。产品功能由企业提供,企业可以根据自己的需求提供功能清单,也可以通过与多家供应商交流后,列出自己所需要的功能。产品的性能。性能指标也是由企业提供,并建议提供具体性能指标所应用的环境及硬件设备等测试环境要求。产品的API适用性。产品......

2019-12-22 16:19:23 2732

原创 算法题_排序算法_插入排序详解

每一次选择一个元素,并且将这个元素和整个数组中的所有元素进行比较,然后插入到合适的位置。这个排序的时间复杂度为O(n2)。接下来我们用C++编写代码:void insertion_sort(int numbers[], int length){ int i,j; for(i = 1; i < length; i++) { int temp = numbers[i]; f...

2019-12-21 20:36:26 231

原创 算法题_排序算法_桶排序

桶排序的思想是将数组分到有限数量的桶中,再对每一个子桶再分别排序(有可能再使用别的排序方法或者以递归的方式再调用桶排序),最后将各个桶中的数据有序的合并起来。排序过程:假设待排序的一组数统一的分布在一个范围中,并将这一范围划分成几个子范围,也就是桶。将待排序的一组数,分档归入这些子桶中,并将桶中的数据进行排序。将各个桶中的数据有序的合并起来。void bucketSort(float...

2019-12-20 20:57:53 159

原创 深度学习_硬件知识_GPU相关知识

深度学习训练和推理的过程中,会涉及到大量的向量(vector),矩阵(matrix)和张量(tensor)操作,通常需要大量的浮点计算,包括高精度(在训练的时候)和低精度(在推理和部署的时候)。GPU,作为一种通用可编程的加速器,最初设计是用来进行图形处理和渲染功能,但是从2007年开始,英伟达(NVIDIA)公司提出了第一个可编程通用计算平台(GPU),同时提出了CUDA框架,从此开启了GPU...

2019-12-20 11:04:42 948

原创 C/C++_C++流

一.C++流的概念C++流的体系结构C++为实现数据的输入输出定义了一系列的流类,这些类之间存在派生、继承关系。要利用C++流,必须在程序中包含有关的头文件,以便获得相关流类的声明。为了使用新标准的流,相关头文件的文件名中不得有扩展名。与C++流有关的头文件有:iostream:使用cin、cout等预定义流对象针对标准设备进行I/O操作。fstream:使用文件流对象针对磁盘文件进行...

2019-12-14 22:53:41 311

原创 算法面试_二叉搜索树的后序遍历序列

题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都不相同。二叉搜索树: 若它的左子树不为空,那么左子树上所有节点的值都小于根节点的值;若它的右子树不为空,那么右子树上所有节点的值都大于根节点的值。它的左右子树也都为二叉搜索树。思路: 在后序遍历得到的序列中,最后一个数字是树的根节点的值。数组中前面的数字...

2019-12-14 16:10:26 143

原创 算法面试_蓄水池抽样算法系列问题(Revervoir Sampling)

题目1:如何随机从n个数字中选择一个数字,这n个数字是按序排列的,但是在此之前不知道n的值。思路:如果我们知道n的值,那么问题就可以简单的用一个大随机数rand()%n来得到一个确切的随机位置,那么该位置的数字就是所求的数字,选中的概率为1/n。但是现在我们并不知道n的值,这个问题便抽象为蓄水池抽样问题,即从一个包含n个数字的数组numbers中随机选取k个数字,n为一个非常大或者不知道的值。...

2019-12-14 09:13:45 395

原创 机器学习_欠拟合和过拟合相关知识、问题及解决方法

如何解决过拟合:重新清洗数据,数据不纯会导致过拟合,此类情况需要重新清洗数据。增加训练样本数量。降低模型复杂程度。增大正则项系数。采用dropout方法,dropout方法就是在训练的时候让神经元以一定的概率失活。提前截断(early stopping)。减少迭代次数。增大学习率。添加噪声数据。树结构中,可以对树进行剪枝。减少特征项。...

2019-12-13 01:08:31 1795

原创 算法面试_最小的K个数

题目:输入n个整数,找出其中最小的k个数。例如,输入3,6,7,2,1,5,6个数字,则最小的3个数字是1,2,3。1.首先是用最简单的方法: 把输入的n个整数排序,排序之后位于最前面的k个数就是最小的k个数。这种思路的时间复杂度是O(nlogn),显然时间复杂度太大。2.我们可以使用排速排序中的思想,使用partition函数进行排序,如果基于第k个数字来调整,则使得比第k个数小的所有数字都...

2019-12-12 21:36:12 294

原创 深度学习_深度学习基础知识_图像数据集不均衡问题的处理方法

首先我们考虑一个二分类问题,比如区分一张图片里的是一只猫还是一只狗。若数据搜集的时候只找到了1000张猫的图片和40000张狗的图片作为训练集。如果直接把这41000张图片放在一起,然后用mini-batch的方法进行训练,就会出现数据不均衡的问题。比如每次迭代的样本数量为100个,那么平均下来每次样本中猫的数量通常只有1、2个。这样的结果是计算损失函数时,狗的图片比重太大,所以相当于是针对狗的...

2019-12-10 23:11:02 4048 1

原创 深度学习_GAN_WGAN与WGAN-GP

一.原始GAN存在的训练崩溃问题所谓GAN的训练崩溃,指的是训练过程中,生成器和判别器存在一方压倒另一方的情况。GAN原始判别器的Loss在判别器达到最优的时候,等价于最小化生成分布与真实分布之间的JS散度,由于随机生成分布很难与真实分布有不可忽略的重叠以及JS散度突变特性,使得生成器面临梯度消失的问题;可是如果不把判别器训练到最优,那么生成器优化的目标也就失去了意义。因此需要我们小心的平衡二...

2019-12-10 16:15:05 3314

原创 机器学习_JS散度详解

JS散度解析。

2019-12-10 15:30:51 9769 1

原创 机器学习_KL散度详解(全网最详细)

全网最详细的KL散度只是解析,你确定不看吗

2019-12-10 15:02:00 27090 2

原创 深度学习_GAN_DCGAN论文详解

原始GAN的思想非常伟大,但是我们在实际运用中很少会直接使用最基础的版本,比如在视觉问题中,如果使用原始的基于DNN的GAN,则会出现许多问题。如果输入GAN的随机噪声为100维的随机噪声,输出图像为256 * 256大小的话,也就是说,要将100维的信息映射为65536维。如果单纯用DNN来实现,那么整个模型参数会非常巨大,而且学习难度很大(低维度映射到高维度需要添加许多信息)。因此,原始G...

2019-12-09 10:28:58 4482

原创 深度学习_GAN_CGAN学习笔记

条件生成对抗网络(CGAN, Conditional Generative Adversarial Networks)作为一个GAN的改进,其一定程度上解决了GAN生成结果的不确定性。如果在MNIST数据集上训练原始GAN,GAN生成的图像是完全不确定的,具体生成的是数字1,还是2,还是几,根本不可控。为了让生成的数字可控,我们可以把数据集做一个切分,把数字0-9的数据集分别拆分开训练9个模型,...

2019-12-08 20:06:00 520

原创 深度学习_GAN_mode collapsing

一.mode collapsing的定义某个模式(mode)出现了大量的重复样本,例如下图所示:上图左侧的蓝色五角星表示真实样本空间,黄色是生成的。生成的样本缺乏多样性,存在大量重复。比如上图右侧中,红框里面人物反复出现。二.如何解决mode collapsing第一种方法:针对目标函数的改进方法为了避免前面提到的由于优化maxmin导致mode跳来跳去的问题,UnrolledGAN采...

2019-12-08 16:44:12 1054 1

原创 深度学习_GAN_生成模型和判别模型的区别

对于机器学习模型,我们可以根据模型对数据的建模方式将模型分为两大类,生成式模型和判别式模型。如果我们要训练一个关于猫狗分类的模型,对于判别式模型,只需要学习二者差异即可。比如说猫的体型会比狗小一点。而生成式则不一样,需要学习猫长什么样,狗长什么样。有了两者的长相以后,再根据长相去区分。具体而言:生成式模型:由数据学习联合概率分布P(X,Y),然后由P(Y/X) = P(X,Y)/P(X)求出概...

2019-12-08 11:02:40 1830

原创 机器学习_集成学习(Ensemble)

一.集成学习(Ensemble)介绍集成学习也称为模型融合(Model Ensemble)、多分类器学习(multiple Classifier System)或基于委员会的学习(Committee-Based Learning)。是一种有效提升机器学习效果的方法。不同于传统的机器学习方法在训练集上构建一个模型,集成学习通过构建并融合多个模型来完成学习任务。首先我们通过下图的一个例子来介绍集...

2019-12-06 15:10:28 2747

原创 深度学习框架_PyTorch_模型预训练_PyTorch使用预训练模型全流程(实例:CIFAR图像分类)

首先,这篇文章是接着下面这篇文章进行补充的,大家可以先看这篇文章如何手动设计一个分类网络:深度学习框架_PyTorch_使用PyTorch编写卷积神经网络全流程(实例:CIFAR10图像分类)一.预训练模型简介卷积神经网络在图像识别,图像分割等领域取得了非常大的成功,出现了很多非常好的网络模型,比如ResNet、GoogLeNet等图像分类模型、Faster R-CNN、YOLO等目标检测模...

2019-12-05 10:19:45 3370 1

原创 算法面试_把字符串转换成整数

题目:写一个函数,把输入的字符串转换成整数。这道题目思路上比较简单,但是要注意细节,比如输入的字符串是不是空指针、空字符串,正负号的注意事项,有没有溢出等等。接下来我们来编写C++的代码:enum Status{kVaild=0,kInvalid};int g_nStatus = kValid;int StrToInt(const char* str){ g_nStatus = k...

2019-12-04 10:01:14 267

原创 算法面试_判断字符串是不是回文串

题目:给定一个字符串,判断它是不是回文串,只考虑字母和数字字符,可以忽略字母的大小写。本题中,我们将空字符串定义为有效的回文串。对这道题,我们使用双指针法。接下来我们编写C++代码:class Solution{public: bool isPalindrome(string s){ if(s.size() <= 1) return true; int i =...

2019-12-03 21:55:09 352

原创 深度学习_图像分割_图像数据可视化分析全流程(EDA)(以钢铁缺陷图像为例)

一.导入相应的Modules下面的代码只是举个例子:import numpy as np # linear algebraimport pandas as pdpd.set_option("display.max_rows", 101)import osprint(os.listdir("../input"))import cv2import jsonimport matplot...

2019-12-03 16:01:27 2003 3

原创 深度学习框架_PyTorch_PyTorch框架入门简介

一.深度学习框架的作用深度学习需要大量的计算。数据量和节点数量是主要计算需求来源。神经网络的结构适用于GPU进行高效并行计算。深度学习框架的创建目标是在GPU上高效运行深度学习模型。提供了基础的数据结构。利用计算图实现自动求导和性能优化。二.PyTorch定义张量张量是向量、矩阵在更高维度上的一种推广.首先我们来看看PyTorch如何定义张量:import torchth...

2019-12-02 22:46:44 908

原创 深度学习框架_PyTorch_使用PyTorch编写卷积神经网络全流程(实例:CIFAR10图像分类)

一.使用PyTorch编写卷积神经网络使用Pytorh编写卷积神经网络,一般需要导入以下模块:import torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimimport torchvision.transforms as transformsimport torch...

2019-12-01 23:08:24 3903

原创 数学基础_若要使骰子(六个面)的每个数都出现至少一次,那么平均需要掷多少次骰子?

记每个数字都出现(首次出现)的总数为X,题目中的意思也就是求E(X).由于X的分布相当复杂,我们就绕开它,考虑将X分解。令X1 = 1,它表示出现第一个数字需要掷的次数。注意:这里第一个数字是指第一个出现的数字,并不是指哪一个固定的数字,所以才有X1 = 1。然后以X2表示为了掷出第二个数字(即只要不是第一个出现的那个数字)再需要掷的次数。同样地,以X3表示为了掷出第三个数字(即除了前面两个已...

2019-12-01 15:07:53 5157 2

原创 算法面试_连续子数组的最大和

题目:输入一个整形数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。接下来我们编写C++代码:bool g_InvalidInput = false;int FindGreatestSumOfSubArray(int* numbers, int length){ if(numbers == nullpter || ...

2019-12-01 14:15:29 216

原创 计算机原理_进程和线程

一.进程和线程的基本概念:进程: 是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态的概念,竞争计算机系统资源的基本单位。线程: 是进程的一个执行单元,是进程内的调度实体。比进程更小的独立运行的基本单位。线程也被称为轻量级进程。一个程序至少一个进程,一个进程至少一个线程。二.线程的意义:每个进程都有自己的地址空间,即进程空间,在网络或多用户换机下,一个服务器通常需要接收大量...

2019-12-01 10:53:14 604 2

空空如也

空空如也

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

TA关注的人

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