
c++
deep_learninger
这个作者很懒,什么都没留下…
展开
-
函数何时值传递,何时指针,何时引用传递总结
编程中定义函数,一般三种传递方法,看是简单,想灵活合理选择,还需要大量的编程经验和技巧。 故在这里特意总结一下这三种传递的方法。根本区别: 函数值传递不改变变量值,如果想改变变量值,需要返回值,然后用变量接收一下这个返回值。 而指针传递和引用传递都可以在函数内改变变量值,不需要通过返回值的形式改变。应用场合: 当想通过这个函数,改变好几个变量的值,多个变量都通过函数返回值来改变变量值原创 2016-03-29 17:01:15 · 4923 阅读 · 2 评论 -
函数返回类型为 指针类型
函数返回指针和返回对象都可以,区别好处:返回指针,这样传递出去的只是一个地址。效率高。如果返回对象,就需要将整个对象拷贝出去,效率低函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。C在编译时,每一个函数都有一个入口地址,该入口地址就是函数原创 2016-01-18 14:10:28 · 2935 阅读 · 0 评论 -
C++中使用指针、引用进行参数传递
一、C++中使用指针、引用进行参数传递如图1中在swap函数里进值交换后传回main函数中还是未交换状态,而使用指针(图2)或引用(图3)就可以成功换值了。2014-09-04 10:09提问者采纳这是经典的C++问题1、常规情况 函数参数传递是所谓的“值传递”。啥意思,就是传的只是值,而不是变量自己原创 2016-01-18 14:03:01 · 1082 阅读 · 0 评论 -
caffe 使用CUDA NSight 集成开发工具调试
从CUDA5.0开始,CUDA ToolKit和CUDA SDK集成到了一个安裝包内,同时安裝包内还集成了Nividia开发的基于Eclipse的CUDA集成开发工具NSight Eclipse Edition,给CUDA开发者提供了一个很好的开发工具。之前尝试过不少Linux下的集成开发环境,如CodeBlock、Eclipse等,都很难达到理想的效果。Nsight将cu文件和c原创 2015-08-17 13:28:54 · 5337 阅读 · 5 评论 -
glog 编译使用。
先下载glog最新版,解压里面有*sln文件,如果你安装了VS2005以上版本都可以直接打开,编译即可得到libglog.dll和libglog.lib文件,拷贝文件到你的测试文件夹下,并拷贝src\windows\下的glog目录到你的工程文件下。 如下是一个测试代码,特别注意, 编译生成的 64位库, 使用的时候,只能使用x64, win32 会提示链接错误,一般就是找不到相应的原创 2015-09-06 16:20:46 · 1833 阅读 · 0 评论 -
caffe db程序分析
db 数据库读取程序在 util 中, 头文件可以看出, 先定义个一个基类,然后派生出两个数据方式。 LevelDB 和 LMDB . 这两种数据库的操作方式几乎相同,所以 基类方法都定义为 虚函数, 有各个的派生类来实现 这些方法 主要在layer文件的 data层调用 官网API 介绍 http://caffe.berkeleyvision.org/doxygen/c原创 2015-08-20 10:57:29 · 979 阅读 · 0 评论 -
MFC中picture控件坐标转换
前段时间, 曾经遇到过这个问题, 通过查资料解决了。 当时因为项目紧,没有时间写博客, 项目完成也没有再去整理。 现在看到有个博客写的这个比较好。 转载一下, 抽时间再好好整理。 opencv在MFC框架下应用时,不可避免要用到picture控件显示图片,但picture控件显示图片的基本单位是屏幕坐标系,如果需要获取像素坐标系,只需要进行一步简单的转换即可。当然如果是原创 2015-08-20 17:39:00 · 1654 阅读 · 1 评论 -
新版本caffe脚本运行无权限,#!/usr/bin/env sh
今天运行新版caffe(150818)运行脚本老师提示 无权限。 在论坛里看到下面这个解释应该就是没有指定bash作为此脚本的解释器,在最var这个脚本的最上面加上#!/bin/bash看看。我马上打开自带的一个脚本:如下#!/usr/bin/env sh./build/tools/caffe train --solver=examples/mnist/lenet_原创 2015-08-20 16:46:34 · 4711 阅读 · 0 评论 -
caffe bechmark.cpp 分析
这个程序中主要定义了 Timer 类, 用来计时使用。 这个主要在solver.cpp中使用。 caffe::Timer Class ReferenceInheritance diagram for caffe::Timer:Public Member Functionsvirtual原创 2015-08-20 11:07:23 · 1289 阅读 · 0 评论 -
caffe windows 安装
下边是转载一篇博客 隔了大半年,因为论文的需要,又重新开始研究caffe。感谢niuzhiheng’s GitHub大神的贡献,caffe已经可以在Windows下使用了。参考了很多大神的博客,成功的在自己的笔记本配置好了Windows版本的caffe。现将自己的配置过程和配置中遇到的问题记录下来,希望能对大家有所帮助。1.配置环境我在自己的笔记本配置的caffe,配置的环原创 2015-09-10 09:55:04 · 3547 阅读 · 0 评论 -
lib 和 dll 的区别与使用, 没有头文件改如何使用
1.生成lib文件 首先,我们先建立一个控制台工程(新建->工程->控制台程序),添加add.cpp以及add.h文件。//sub.h#ifndef _SUB_H#define _SUB_Hvoid sub(int a,int b);#endif//sub.cpp#include "sub.h"#include void sub(int a,int b)原创 2016-03-29 21:59:20 · 4957 阅读 · 0 评论 -
matlab自带各种分类器的使用示例
目前了解到的MATLAB中分类器有:K近邻分类器,随机森林分类器,朴素贝叶斯,集成学习方法,鉴别分析分类器,支持向量机。现将其主要函数使用方法总结如下,更多细节需参考MATLAB 帮助文件。设 训练样本:train_data % 矩阵,每行一个样本,每列一个特征 训练样本标签:train_label % 列向量 测试样本:test_da原创 2016-04-05 18:50:19 · 46830 阅读 · 16 评论 -
COM口 大于9 连接不上问题总结
今天调试单片机控制舵机程序,昨天刚调试完,没问题。今天再去调试总是不行,用串口助手就没问题。 错误提示的返回值为2, 即为打开串口失败, 找了好久发现, 上次我用的串口是COM8,这次的串口COM11,后来发现当串口大约9时容易出现问题。整理一下。程序调试时发现,使用CreateFile()打开COM4时正常,打开COM10时却总是失败。这两个端口均为虚拟COM口,通过蓝牙仿真串口完成数据原创 2016-04-24 22:41:43 · 4605 阅读 · 0 评论 -
串口通信代码
#include#include using namespace std; int main(){ HANDLE hcom; hcom = CreateFile("COM1",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING ,FILE_ATTRIBUT原创 2016-04-22 11:08:27 · 1757 阅读 · 0 评论 -
VC 串口通信实现方式
利用师姐QT2440开发板控制机械臂, 串口通信出现问题, 找到usb转串口后,任然找不到相应的驱动。初步打算用单片机实现。1.基于Active控件的方式(MSComm) 优点是:直接利用控件,在串口有数据到达时,会促发相应的事件响应函数,然后你可以在实践响应函数里,进行数据的读取。 缺点是:数据在发送和接受的过程中VARIANT、原创 2016-04-21 15:32:00 · 2762 阅读 · 0 评论 -
window system()函数的使用总结
window 下用vs 控制台程序编程时,经常用system()函数,比如我常用的是system("pause");程序运行完时,停止在控制台界面你,方便查看程序的运行结果systetm函数,就是可以调用DOS命令,还有其他的一些其他常用的DOS命令system函数 是可以调用一些DOS命令,比如system("cls");//清屏,等于在DOS上使用cls命令下面列出常用的DOS原创 2016-05-13 15:44:37 · 3257 阅读 · 0 评论 -
vs2010使用boost库,安装
今天抽时间学习了一下boost库,用c++ 做算法,自己再去造轮子实在是浪费时间,学习boost未来工作能直接上手。比如caffe就直接使用了boost库, 这里边常用的 对于时间操作,字符串操作,文件操作,智能指针等,熟练使用这些能大大的加速算法的开发时间。一、参考资料: 1、 http://download.youkuaiyun.com/detail/nuoshueihe/5344原创 2016-05-13 14:44:07 · 6581 阅读 · 0 评论 -
MFC 多线程实现,传参等问题
创建一个基于对话框的工程,工程名为CreateThreadRect 在CreateThreadRect.cpp中增加一个ThreadProc函数,代码如下 工作者线程的函数必须是全局函数或静态成员函数,不能是普通的成员函数 DWORD WINAPI ThreadProc(LPVOID pParam){ CDC* pdc; //原创 2016-04-14 23:01:45 · 7332 阅读 · 1 评论 -
MFC 用于多个对话框的全局变量如何定义
一、通过extern 实现,定义为,可以定义一个头文件,比如inforsubject.h ,在这里定义类或变量, 这里不用加载其他的头文件struct InfoSubject{ CString name; int age; int Times;};对话框的程序使用extern InfoSubject infomation;//实验者的信息InfoSubject i原创 2016-04-14 10:40:58 · 2375 阅读 · 0 评论 -
C++处理JSON数据和在face++ 调用中的使用
使用C++处理JSON数据交换格式一、摘要 JSON的全称为:JavaScript Object Notation,顾名思义,JSON是用于标记Javascript对象的,JSON官方的解释为:JSON是一种轻量级的数据传输格式。本文并不详细介绍JSON本身的细节,旨在讨论如何使用C++语言来处理JSON。关于JSON更具体的信息,可参见JSON官网:http://www.json.原创 2016-03-28 17:29:34 · 3855 阅读 · 2 评论 -
error RC2108: expected numerical dialog constant
在我们用图形控件Picture Control在对话框上添加图片是,经常会出现error RC2108: expected numerical dialog constant解决方法:双击error rc2018...打开文件在如图所示的位置增加“Static”, SS_BITMAP原创 2016-03-26 22:18:48 · 2982 阅读 · 0 评论 -
Caffe官网 Tutorial: Nets, Layers, and Blobs caffe模型分解分析
http://caffe.berkeleyvision.org/tutorial/net_layer_blob.html 官网地址 总概况: caffe 计算模型:一层层的框架,从bottom 到 top 从输入数据到loss, 数据和梯度流通过 forward and backward passes 流动。原创 2015-08-19 16:40:39 · 1319 阅读 · 0 评论 -
深度学习研究理解:OverFeat:Integrated Recognition, Localization and Detection using Convolutional Networks
本文是纽约大学Yann LeCun团队中Pierre Sermanet ,David Eigen和张翔等在13年撰写的一篇论文,本文改进了Alex-net,并用图像缩放和滑窗方法在test数据集上测试网络;提出了一种图像定位的方法;最后通过一个卷积网络来同时进行分类,定位和检测三个计算机视觉任务,并在ILSVRC2013中获得了很好的结果。一,介绍 卷积网络的主要优势是转载 2015-08-19 16:10:39 · 994 阅读 · 0 评论 -
caffe 在已有模型上继续训练
一、caffe 支持在别人的模型上继续训练。 下面是给的例子caffe-master0818\examples\imagenet\resume_training.sh#!/usr/bin/env sh./build/tools/caffe train \ --solver=models/bvlc_reference_caffenet/solver.prototxt \原创 2015-08-19 15:20:09 · 13841 阅读 · 0 评论 -
c++ 抽象类
最近在看caffe layer代码, 感觉作者利用抽象基类,使这个代码结构特别清晰,下面特意总结一下抽象基类一、抽象类目的:抽象类是为了抽象和设计的目的而建立的,处于继承层次结构的上层。具体类是能够建立对象的类。二、抽象类的规定(1)抽象类只能用作其他类的基类,不能建立抽象类对象。(2)抽象类不能用作参数类型、函数返回类型或显式转换的类型。原创 2015-08-12 10:27:55 · 649 阅读 · 0 评论 -
caffe siamese 网络 对比损失函数
siamese 网络, 是05年Yann Lecun提出来的。 ,它的特点是它接收两个图片作为输入,而不是一张图片作为输入。文献资料:摘抄自caffe github的issue697Siamese nets are supervised models for metric learning [1].[1] S. Chopra, R. Hadsell, and原创 2015-08-25 15:28:14 · 16014 阅读 · 0 评论 -
父类与子类之间 指针引用等互调
一、 指针调用情况 1、 父类指针new子类对象,而不能为子类指针new父类对象 因为子类包含有父类,把子指针赋给父指针时其实只是把子类中父类部分的地址赋给了父类指针而已,而父类里没有包含子类,所以不能复制,建议楼主变个程序然后再对照看下汇编就清楚了因为子类继承了父类,所以说他里面就有了父类的函数,所以可以指向啊,但是父类里没有子类的函数,就像结构体指针一样,他怎么能原创 2015-08-25 16:44:45 · 2472 阅读 · 0 评论 -
CAFFE CONTRASTIVE_LOSS 对比损失函数
caffe的损失函数,目前已经囊括了所有可以用的了吧,损失函数由激活函数决定,同时有时会加入regularization,在BP过程中,使得误差传递得以良好运行。一、contrastive_loss,对应contrastive_loss_layer,我看了看代码,这个应该是输入是一对用来做验证的数据,比如两张人脸图,可能是同一个人的(正样本),也可能是不同个人(负样本)。在caff原创 2015-08-25 11:01:14 · 11840 阅读 · 0 评论 -
caffe cuda 程序分析
caffe 用cuda 来进行加速, 看完caffe CPU的程序,再去看 CUDA程序, 变得很容易了在layer文件中, cuda 程序和CPU程序类似,只是调用math_function.hpp函数不一样,一个调用cpu 一个调用gpu,下面以absval_layer.cu为例:#include #include "caffe/layer.hpp"#include "c原创 2015-08-25 10:31:40 · 5828 阅读 · 0 评论 -
面试常问的问题
1、介绍一下你自己2、 你最大的优点和缺点是什么3、 你觉得你自己应聘这个职位的优势和不足是什么? 你最喜欢从事的工作是什么? 如果您加入我们,你将为未来的工作做哪些准备?4、 在您以前进行的有关图像处理信号处理的工作中, (1) 请列举您单独负责的项目(或者是主要负责人) 并简述您负责的部分 (2) 项目中 您认为困难点在哪里? 是如何解决的?5、 索贝原创 2015-08-24 13:30:13 · 2891 阅读 · 0 评论 -
根据STL 学习数据结构
STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和 set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让用户在 STL使用过程中,并不会感到陌生。因为STL 常用, 所以通过STL 来学习 数据结构, 同时加深对STL 容器的认识map 用的是红原创 2015-08-24 16:10:50 · 738 阅读 · 0 评论 -
caffe 学c++ 编程 技巧
1、 使用模板,泛型编程template Net::Net(const NetParameter& param) { Init(param);}代码中到处可见 使用模板, 主要是 输入类型 多样性, 使用模板 是代码通用性更强2、尽量封装,使用纯虚函数,构造抽象类, 虚函数 实现封装继承从 data层 卷积层代码可以看出3、 使用 宏定义, 定义常量,定义函数。原创 2015-08-24 14:03:54 · 1762 阅读 · 0 评论 -
浅谈你对面向对象编程的认识
面向对象编程强调抽象、封装、继承、多态抽象:我们在定义一个抽象类的时候,实际上就是把一类事物共有的属性和行为提取出来,形成一个物理模型(模版),这种研究问题的方法称为抽象。你可以这样来想,抽象就是一个类的最基础的东西,比方说人,他的抽象类可能就是都从母体出来,有皮肤。但具体到你是黑人,白人,还得黑人类,白人类来说明 。封装:就是将类的属性包装起来,不让外界轻易的知道他的内部实现转载 2015-08-22 21:15:15 · 465 阅读 · 0 评论 -
inline函数和一般的函数
这是为了优化程序,让系统编译时节约时间。如果inline的函数太大就不可以了。关于节约时间的问题,在一般的小程序中看不出效果,要在大型的项目中才能感觉的出。适合比较小的函数,这涉及一个效率问题。记住,调用函数的开销是很大的,所谓的空间开销是指调用函数前,先要将原来的函数保存在寄存器(占用寄存器空间)里面,并在调用结束后恢复。调用函数时,还要复制实参(占用内存空间)。如果被调用函数一旦调原创 2015-08-10 11:42:23 · 1104 阅读 · 0 评论 -
caffe使用MemoryDataLayer从内存中加载数据
caffe使用MemoryDataLayer从内存中加载数据时间:2015-07-22 20:56:49 阅读:97 评论:0 收藏:0 [点我收藏+]标签:memorydatalayer 深度学习 caffe 内存中加载数据 最近在搞caffe的应用,因为很多时候我们需要进行服务器来进行特征的抽取,所以我们需转载 2015-08-26 10:10:20 · 1786 阅读 · 0 评论 -
对机器学习江湖的认识
近几年的发展,机器学习成为计算机行业比较热的方向。也就有了江湖, 个人对这个江湖的认识: 要想在这个江湖中扬名, 首先要练就一身本领,然后才能成为一代大侠。这个就行 武侠练功一样,刚开始练得剑法,对一些比较炫的剑法比较追逐。同样机器学习这个领域也是,刚开始接触,要学习很多比较炫的算法, 比如说现在的深度学习。当然在学深度学习之前,可以先把经典的十大机器学习算法学完, 有了这原创 2015-08-14 15:41:43 · 907 阅读 · 0 评论 -
vs2010
预备: caffe windows vs2013 使用博客,http://blog.youkuaiyun.com/happynear/article/details/45372231, 可以参考这个来安装vs2010 caffe for windows vs2012安装使用, http://download.youkuaiyun.com/detail/zhangbo123/8644789 , 这里面有每个原创 2015-09-07 17:32:12 · 1106 阅读 · 2 评论 -
百度2014校园招聘笔试题 ——深度学习算法研发工程师
百度2014校园招聘笔试题 ——深度学习算法研发工程师.转载于 http://blog.youkuaiyun.com/luoweifu/article/details/12685169目录(?)[+]一简答题二算法和程序设计三系统设计题两题中任选一题作答25分我的部分解答今天上午到腾迅那里,没有叫到笔试通知,是去霸笔的。原本以为是可以转载 2015-08-18 16:54:23 · 934 阅读 · 0 评论 -
caffe源码解析 — net.cpp
caffe源码解析 — net.cpp分类: caffe源码2015-04-15 11:52 616人阅读 评论(2) 收藏 举报Net类是Solve类的一个成员,在net.cpp中定义了对Net的所有操作,其中包括:InitGetLearningRateAndWeightDecayForwardPrefilledBackwardShareTrainedLay转载 2015-08-17 15:21:54 · 2311 阅读 · 1 评论 -
根据caffe,如何学习开源框架
caffe 架构,设计思想特别好。看完caffe 感觉受益匪浅, 学到了很多设计思想。 Caffe的代码主要分布在三个目录include、src和tools,main函数在tools目录下的caffe.cpp。由于Caffe是深度学习模型,单步调试在跨越很多层的情况下显得过分繁琐且不易发现问题。个人建议,分层做单元测试,再组合各层通过日志输出来调试全局模型。个人的经验是,这种方式高效而且逻原创 2015-08-18 11:02:20 · 1065 阅读 · 0 评论