自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qiaofangjie的专栏

多做一些尝试

  • 博客(28)
  • 资源 (16)
  • 收藏
  • 关注

原创 c++重写卷积网络的前向计算过程,完美复现theano的测试结果

本人的需求是:通过theano的cnn训练神经网络,将最终稳定的网络权值保存下来。c++实现cnn的前向计算过程,读取theano的权值,复现theano的测试结果本人最终的成果是:1、卷积神经网络的前向计算过程 2、mlp网络的前向与后向计算,也就是可以用来训练样本需要注意的是:如果为了复现theano的测试结果,那么隐藏层的激活函数要选用tanh;否则,为了mlp的

2014-01-09 16:30:01 26607 27

原创 c++读写二进制文件

c++读写二进制文件,在windows与linux下可能会有不同的效果。本人写的一个小例子在linux下写入二进制数据正常,而在windows下面写入数据的过程中,竟然自动添加了0x25等等一些无意义的字节,找了好久才发现这个bug。下面是正确的写法void TestWriteBinary(){ const char *pcwritefile = "fileBinary.txt";

2013-12-18 19:35:34 4630

转载 在NumPy中使用动态数组

本文转自:http://hyry.dip.jp/tech/slice/slice.html/13NumPy的ndarray数组对象不能像list一样动态地改变其大小,在做数据采集时很不方便。本文介绍如何通过np.frombuffer()实现动态数组。列表对象的内存动态分配Python的列表对象实际上是一个动态指针数组。当列表中没有空间储存新的元素时,列表会动态地改变

2013-12-13 15:05:37 40021

原创 win7 64位成功安装theano,并且gpu配置成功

之前一直在linux下用theano,gpu很好配。上周需要在windows下工作,于是折腾了一周,刚才莫名其妙就配好了gpu。下面是我配置theano的经验:先上一个成功使用gpu的截图基本上是两步走:1、安装theano2、安装cuda注意在win7 64位下,python和cuda要统一,要么都用32位,要么都用64位的。在windows下最麻烦的可能就是

2013-12-06 20:02:16 30158 11

原创 统计大量文本中重复字符串的最大个数

有大量中文繁体的文本,都是网上摘取的,大小有6G。需要提取文本中相同的字符串的最大个数有几个关键问题:1.字符串的粒度如何确定?如何表示字符串的唯一位置索引?2.字符串过多,如何快速确定是否相同,时间复杂度要尽量低3.文本过多,无法放入内存怎么办4.如何统计相同hash值的个数,以及记录它们的索引位置对于1,每次读取一行,然后以100个字节为一组作为比较的字符串。每行最后一

2013-11-25 16:51:36 7108

原创 Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解

Deep Learning(深度学习)学习笔记整理系列的地址是http://blog.csdn.net/zouxy09/article/details/8781543,里面举了一个卷积例子用来说明参数.一个典型的例子说明       一种典型的用来识别数字的卷积网络是LeNet-5(效果和paper等见这)。当年美国大多数银行就是用它来识别支票上面的手写数字的。能够达到

2013-11-19 17:06:54 107868 21

原创 工作小结python和cpp通过json互通

这个月最后一天,对之前的工作做个小结,一会儿打球1.numpy保存的权值与c++交互,很困难,numpy的格式不好解析,网上资料很少2.采用python做中间转换,实现1的要求。后看theano代码,发现读入python的训练样本,不用转换成numpy数组,用本来python就可以了。但是python经过cPickle的dumpy文件,加了很多格式,不适合同c交互。3.用j

2013-10-31 19:24:18 1858

原创 c++实现mlp神经网络

之前一直用theano训练样本,最近需要转成c或c++实现。在网上参考了一下其它代码,还是喜欢c++。但是看了几份cpp代码之后,发现都多少有些bug,很不爽。由于本人编码能力较弱,还花了不少时间改正。另外又添加了写权值和读权值的功能,可以保存训练的结果。下面是代码实现的基本功能描述。问题描述:用cpp重写mlp,即普通的多层神经网络。需要实现多个隐藏层与输出层互连,分类层采用softma

2013-10-31 17:51:47 5959 2

原创 numpy数组与python的list互转,然后用json写入文件与c交互

1.对于numpy的tofile方法,一个一维数组可以直接写成二进制形式,用c语言或者numpy.fromfile()可以读出来内容。而如果数组超过一维,tofile并不区分,也就是arr1=[1,2,3,4],arr2=[[1,2],[3,4]]写入文件是一样的2.对于json写入numpy数组的想法,已知json只能写入python的数组,而不认识numpy的。难点在于如何将json的数组

2013-10-30 20:58:26 52063 9

原创 c语言write与python的struct模块交互

以下讲的都是用二进制形式打开文件。网上有很多struct模块的文章,下面是我做的小实验。1.对于c里面的fwrite写入一个单字节,写的就是它的二进制。如3,写入文件就是二进制0x03,它并不是3的ascii码,即0x33;而python的struct模块与它一样,例如val = struct.pack('B', 3),返回的val是字符串'0x03',write写入的参数必须字符串类型,因此

2013-10-30 10:17:17 1920

原创 2013-10-28,文件编码初探(留给自己看)

今天有些郁闷,上午把替换字符串的文本交给了chenxu。下午就折腾了个c读取不同文件编码,弄得头晕乎乎的1.文件存储在电脑上,同样的内容不同编码不一样。如同样是1234,用ascii码和unicode完全不一样2.notepad查看二进制文件有问题,16进制显示不全,下次用ue3.UCS就是unicode编码,UCS-2代表一个字符用两个字节存储。它又分为小端法

2013-10-28 19:29:21 976

原创 python替换UTF-8编码文本中任意特殊字符,包括中文符号

问题:大量文本,将其中的特殊字符用空格替换,特殊字符如:◆★,日期[1990-11-23]等。这些文本有如下特点:1.文件名以中文命名2.经测试,文件编码为UTF-8先看程序:# -*- coding: utf-8 -*-import reimport chardetimport osdef dowork(dirname): txt_filenames

2013-10-27 12:42:04 20843

转载 Installing CUDA Toolkit 5.0 on Ubuntu 12.10 Linux

转载:http://www.r-tutor.com/gpu-computing/cuda-installation/cuda5.0-ubuntuThe following explains how to install CUDA Toolkit 5.0 on 64-bit Ubuntu 11.10 Linux. I have tested it on a self-assembled de

2013-06-18 10:51:07 1230

原创 python中多次dump文件,需要多次load才能读取

创建一个文件,如果想要分多次写入数据data,显然每次都要调要dump,即def writefile(loop, data): name = 'wb' + str(loop) + '.txt' f = open(name, "wb") cPickle.dump(data,f,True) cPickle.dump(range(11, 21, 3),f,True)

2013-06-03 10:32:18 6074 1

原创 通过qt将二维数组中的像素点显示成一张图片

从文件42.train读入一个长度为dstSize*dstSize字节数据,存到一个数组psData中,这些数据全部是像素点的值,不包括文件头等辅助信息.通过qt创建一个gui工程,基类选择QWidegt,将图片显示出来。代码如下#include "widget.h"#include "ui_widget.h"#include #include typedef unsigned s

2013-05-23 14:34:14 13213 4

转载 C++编程学习50个经典网站 强力推荐

C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。1、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段 2、http

2013-04-03 11:19:44 1551

转载 薪资的意义

一个35岁左右的白骨精来找我们,她需要在两个工作里面做选择。一个是年薪30万的制片总监,一个是年薪10万的市场策划。她喜欢后者的节奏与内容,却被前面的工资吸引。我们仔细算了一下她的工作时间:前者是每天加班,节假日无休赶节目,每天工作近15个小时,后者则是8小时规律的生活。这样算下来,两者的时薪差不多,只是那份“好工作”把三年的活放到一年来做罢了。如果加上由此产生的未来医药费,简直比“坏工作”还不赚

2013-03-06 10:18:13 1194

转载 Linux环境变量的设置和查看方法

1. 显示环境变量HOME  $ echo $HOME  /home/redbooks  2. 设置一个新的环境变量hello  $ export HELLO="Hello!"  $ echo $HELLO  Hello!  3. 使用env命令显示所有的环境变量  $ env  HOSTNAME=redbooks.safe.or

2013-03-01 14:54:51 544

转载 ubuntu下软件安装卸载与查看

转载:http://www.cnblogs.com/balaamwe/archive/2011/10/27/2225919.html说明:由于图形化界面方法(如Add/Remove... 和Synaptic Package Manageer)比较简单,所以这里主要总结在终端通过命令行方式进行的软件包安装、卸载和删除的方法。一、Ubuntu中软件安装方法1、APT方式(1

2013-01-28 11:43:10 583

转载 关于如何读代码?

转载:http://blog.csdn.net/leezy_2000/article/details/8475290读代码这事,先要分是精读还是泛读。从学习的目的来看,一定要精读一定量的经典代码。而精读是指每行都读懂,不看代码脑子里就能勾画出程序的基本结构。这里有个很形象的状态,精读代码时会满脑子都是代码,放不下,甚至睡觉前脑子里也是代码。但这一篇里主要不是关注如何精读

2013-01-22 11:50:47 810

转载 9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路

转载:http://www.cnblogs.com/figure9/archive/2013/01/09/2853649.html1,简介毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾。 首先说说我拿到的offer情况:微软,3面->终面,搞定百度,3面->终面,口头offer搜狗,2面,悲剧腾讯,1面,悲

2013-01-18 14:29:58 3685

转载 从现在就开始投资自己吧

转载自:http://blog.csdn.net/jye13/article/details/8486178工作了,我们终于可以自己赚钱,只要我们好好工作,每个月都会有稳定的工资打到卡上。你会如何使用这些钱呢?是急急忙忙买个MacBook,还是赶紧把手机换成Iphone 4s,还是准备攒钱娶老婆?这引起了几个同学们的讨论,先说说我们的想法吧。你为什么不应该把钱存在银行里?稍

2013-01-11 17:12:54 769

原创 好用的vim配置

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 一般设定"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 设定默认解码set fenc=utf-8set fencs=utf-8,usc-bom,euc-j

2012-12-26 19:09:44 1557

原创 排列组合算法的递归实现

复习一下排列组合1.排列较为简单,代码如下:void perm(string &str, int k){ int size = str.size(); if (k == size - 1) cout << str << endl; else { for (int i = k; i < size; ++i) { swap(str.at(i), str.at(k))

2012-10-19 11:22:14 4982 1

原创 红黑树、二叉搜索树的实现和性能比较(c++实现红黑树)

红黑树、二叉搜索树的实现和性能比较问题描述: 实现红黑树、二叉搜索树相关算法:插入(红黑树涉及树的调整:左旋、右旋等),删除,搜索(指定Key值节点)。 另外,红黑树实现计算树黑高的算法。实验要求:1).插入测试,输入 8,11,17,15,6,1,22,25,27,建立红黑树,按照红黑树信息输出方式 输出整棵红黑树以及黑高。2).删除测试,删除1)中红黑树中Key=15的

2012-05-19 22:12:29 9302 4

原创 递归:打印一个序列先入栈再出栈的所有可能

题目:一个序列,比如1,2,3。1入栈之后,有两种情况:一、2入栈;二、1出栈到目标数组。在程序执行的每个时刻都存在这两种肯能,因而会导致打印的结果不一样。要求:打印出所有可能的输出序列思路:递归遍历所有解空间,注意递归的时候要恢复每步的环境。我程序采用三个数组,源序列src[ ],模拟栈st[ ],目标数组dest[ ](也就是最后要打印的数组)。其中st[0]和dest[0]分别表示当前数

2012-05-19 20:55:46 4061 1

原创 微软面试题:三路划分快速排序---针对重复关键字的改进

这是2012年微软实习生招聘的面试题,可惜的是本人没有通过,但是这道题当时是做出来了题目:改写partition算法。要求:一次partition之后,小于基准元素key的数在左边,等于key的在中间,大于key的在右边思路:参照算法导论上的思想,做出改进:i指向小于基准元素的序列的末尾,j指向等于基准元素的序列的末尾,k指向当前遍历到的元素,说到这里应该可以了程序c++实现:

2012-05-12 11:43:52 2479 2

原创 归并排序,空间复杂度O(1)的实现

这是2012年百度实习生笔试的题目,当时没有想明白。题目大概是这样的:数组A,前面一段是L1,后面一段L2。两个有序序列L1和L2,利用归并排序的merge,将数组A排序。要求:空间复杂度为O(1)思路:利用原数组A的空间,两个下标i和j分别遍历L1和L2。注意:当L2当前元素较小时,会覆盖L1的元素。可以利用插入排序,将arr[j]插入到L1中。程序c++实现: #include

2012-05-12 11:10:51 9823 5

c++复现theano卷积神经网络的前向计算过程

通过theano的cnn训练神经网络,将最终稳定的网络权值保存下来。c++实现cnn的前向计算过程,读取theano的权值,复现theano的测试结果 本人最终的成果是: 1、卷积神经网络的前向计算过程 2、mlp网络的前向与后向计算,也就是可以用来训练样本

2014-01-09

c++实现多层神经网络

c++实现多层神经网络模型,工程用vs2008生成。 参考了网上多篇c++神经网络代码,修改多处bug,最终生成无bug版本的代码 测试例子为自己构造:将3位二进制转为10进制

2013-10-22

卷积神经网络详述

卷积神经网络是近年来广泛应用于模式识别、图像处理等领域的一种高效识别算法,它具有结构简 单、训练参数少和适应性强等特点。本文从卷积神经网络的发展历史开始,详细阐述了卷积神经网络的网 络结构、神经元模型和训练算法。在此基础上以卷积神经网络在人脸检测和形状识别方面的应用为例,简 单介绍了卷积神经网络在工程上的应用,并给出了设计思路和网络结构

2013-05-08

《Qt+Creator快速入门》pdf

本书是要讲解Qt creator开发环境的使用和Qt基本知识点的应用,适合没有Qt编程基础、有Qt编程基础但是没有形成知识框架以及想学习Qt中某一方面应用的读者阅读。因为书中的内容比较浅显,而且讲解很详细,所以读者可以根据自己的情况选择性学习

2013-03-06

QML与C++交互使用

我们知道 ,通过Qt Declarative module ,C++可以动态创建和操纵QML的组件(cpmponents) ,我们利用这些API使用C++来拓展我们的QML程序,反过来也可以将QML嵌入到你的C++程序中。通过Qt的元对象系统( Qt‘s metaobject system),我们可以利用Qt中的信号与槽机制使QML 和 Qt objects 相互通信(communicate)。另外,QML plugins可以用来创建可复用的QML 组件。

2013-01-21

QML培训资料

QML (Qt Meta-Object Language),是Qt推出的Qt Quick技术的一部分,是一种新增的简便易学的语言。QML是一种陈述性语言,用来描述一个程序的用户界面。文件格式以.qml结尾。语法格式非常像CSS,但又支持javacript形式的编程控制。在QML,一个用户界面被指定为具有属性的对象树。 这使得Qt更加便于很少或没有编程经验的人使用。 JavaScript在QML中作为一种脚本语言,对QML进行逻辑方面的编程。 它结合了QtDesigner UI和QtScript的优点。QtDesigner可以设计出.ui界面文件,但是不支持和Qt原生C++代码的交互。QtScript可以和Qt原生代码进行交互,但是有一个缺点,如果要在脚本中创建一个继承于QObject的图形对象非常不方便,只能在Qt代码中创建图形对象,然后从QtScript中进行访问。而QML可以在脚本里创建图形对象,并且支持各种图形特效,以及状态机等,同时又能跟Qt写的C++代码进行方便的交互,使用起来非常方便。

2013-01-17

linux常用命令+pdf

linux常用命令,对于初学linux的同学很有用,希望对大家有所帮助,哈

2011-02-27

linux程序设计第四版

linux程序设计第四版电子书,适合初学者入门学习linux,挺好的

2011-02-27

空空如也

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

TA关注的人

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