- 博客(28)
- 资源 (16)
- 收藏
- 关注
原创 c++重写卷积网络的前向计算过程,完美复现theano的测试结果
本人的需求是:通过theano的cnn训练神经网络,将最终稳定的网络权值保存下来。c++实现cnn的前向计算过程,读取theano的权值,复现theano的测试结果本人最终的成果是:1、卷积神经网络的前向计算过程 2、mlp网络的前向与后向计算,也就是可以用来训练样本需要注意的是:如果为了复现theano的测试结果,那么隐藏层的激活函数要选用tanh;否则,为了mlp的
2014-01-09 16:30:01
26757
6
原创 c++读写二进制文件
c++读写二进制文件,在windows与linux下可能会有不同的效果。本人写的一个小例子在linux下写入二进制数据正常,而在windows下面写入数据的过程中,竟然自动添加了0x25等等一些无意义的字节,找了好久才发现这个bug。下面是正确的写法void TestWriteBinary(){ const char *pcwritefile = "fileBinary.txt";
2013-12-18 19:35:34
4706
转载 在NumPy中使用动态数组
本文转自:http://hyry.dip.jp/tech/slice/slice.html/13NumPy的ndarray数组对象不能像list一样动态地改变其大小,在做数据采集时很不方便。本文介绍如何通过np.frombuffer()实现动态数组。列表对象的内存动态分配Python的列表对象实际上是一个动态指针数组。当列表中没有空间储存新的元素时,列表会动态地改变
2013-12-13 15:05:37
40334
原创 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
30264
4
原创 统计大量文本中重复字符串的最大个数
有大量中文繁体的文本,都是网上摘取的,大小有6G。需要提取文本中相同的字符串的最大个数有几个关键问题:1.字符串的粒度如何确定?如何表示字符串的唯一位置索引?2.字符串过多,如何快速确定是否相同,时间复杂度要尽量低3.文本过多,无法放入内存怎么办4.如何统计相同hash值的个数,以及记录它们的索引位置对于1,每次读取一行,然后以100个字节为一组作为比较的字符串。每行最后一
2013-11-25 16:51:36
7205
原创 Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解
Deep Learning(深度学习)学习笔记整理系列的地址是http://blog.youkuaiyun.com/zouxy09/article/details/8781543,里面举了一个卷积例子用来说明参数.一个典型的例子说明 一种典型的用来识别数字的卷积网络是LeNet-5(效果和paper等见这)。当年美国大多数银行就是用它来识别支票上面的手写数字的。能够达到
2013-11-19 17:06:54
108053
6
原创 工作小结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
1925
原创 c++实现mlp神经网络
之前一直用theano训练样本,最近需要转成c或c++实现。在网上参考了一下其它代码,还是喜欢c++。但是看了几份cpp代码之后,发现都多少有些bug,很不爽。由于本人编码能力较弱,还花了不少时间改正。另外又添加了写权值和读权值的功能,可以保存训练的结果。下面是代码实现的基本功能描述。问题描述:用cpp重写mlp,即普通的多层神经网络。需要实现多个隐藏层与输出层互连,分类层采用softma
2013-10-31 17:51:47
6080
原创 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
52110
1
原创 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
1955
原创 2013-10-28,文件编码初探(留给自己看)
今天有些郁闷,上午把替换字符串的文本交给了chenxu。下午就折腾了个c读取不同文件编码,弄得头晕乎乎的1.文件存储在电脑上,同样的内容不同编码不一样。如同样是1234,用ascii码和unicode完全不一样2.notepad查看二进制文件有问题,16进制显示不全,下次用ue3.UCS就是unicode编码,UCS-2代表一个字符用两个字节存储。它又分为小端法
2013-10-28 19:29:21
1005
原创 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
20900
转载 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
1279
原创 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
6138
原创 通过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
13372
3
转载 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
1639
转载 薪资的意义
一个35岁左右的白骨精来找我们,她需要在两个工作里面做选择。一个是年薪30万的制片总监,一个是年薪10万的市场策划。她喜欢后者的节奏与内容,却被前面的工资吸引。我们仔细算了一下她的工作时间:前者是每天加班,节假日无休赶节目,每天工作近15个小时,后者则是8小时规律的生活。这样算下来,两者的时薪差不多,只是那份“好工作”把三年的活放到一年来做罢了。如果加上由此产生的未来医药费,简直比“坏工作”还不赚
2013-03-06 10:18:13
1224
转载 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
572
转载 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
609
转载 关于如何读代码?
转载:http://blog.youkuaiyun.com/leezy_2000/article/details/8475290读代码这事,先要分是精读还是泛读。从学习的目的来看,一定要精读一定量的经典代码。而精读是指每行都读懂,不看代码脑子里就能勾画出程序的基本结构。这里有个很形象的状态,精读代码时会满脑子都是代码,放不下,甚至睡觉前脑子里也是代码。但这一篇里主要不是关注如何精读
2013-01-22 11:50:47
840
转载 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
3728
转载 从现在就开始投资自己吧
转载自:http://blog.youkuaiyun.com/jye13/article/details/8486178工作了,我们终于可以自己赚钱,只要我们好好工作,每个月都会有稳定的工资打到卡上。你会如何使用这些钱呢?是急急忙忙买个MacBook,还是赶紧把手机换成Iphone 4s,还是准备攒钱娶老婆?这引起了几个同学们的讨论,先说说我们的想法吧。你为什么不应该把钱存在银行里?稍
2013-01-11 17:12:54
788
原创 好用的vim配置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 一般设定"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 设定默认解码set fenc=utf-8set fencs=utf-8,usc-bom,euc-j
2012-12-26 19:09:44
1585
原创 排列组合算法的递归实现
复习一下排列组合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
5013
原创 红黑树、二叉搜索树的实现和性能比较(c++实现红黑树)
红黑树、二叉搜索树的实现和性能比较问题描述: 实现红黑树、二叉搜索树相关算法:插入(红黑树涉及树的调整:左旋、右旋等),删除,搜索(指定Key值节点)。 另外,红黑树实现计算树黑高的算法。实验要求:1).插入测试,输入 8,11,17,15,6,1,22,25,27,建立红黑树,按照红黑树信息输出方式 输出整棵红黑树以及黑高。2).删除测试,删除1)中红黑树中Key=15的
2012-05-19 22:12:29
9410
1
原创 递归:打印一个序列先入栈再出栈的所有可能
题目:一个序列,比如1,2,3。1入栈之后,有两种情况:一、2入栈;二、1出栈到目标数组。在程序执行的每个时刻都存在这两种肯能,因而会导致打印的结果不一样。要求:打印出所有可能的输出序列思路:递归遍历所有解空间,注意递归的时候要恢复每步的环境。我程序采用三个数组,源序列src[ ],模拟栈st[ ],目标数组dest[ ](也就是最后要打印的数组)。其中st[0]和dest[0]分别表示当前数
2012-05-19 20:55:46
4119
原创 微软面试题:三路划分快速排序---针对重复关键字的改进
这是2012年微软实习生招聘的面试题,可惜的是本人没有通过,但是这道题当时是做出来了题目:改写partition算法。要求:一次partition之后,小于基准元素key的数在左边,等于key的在中间,大于key的在右边思路:参照算法导论上的思想,做出改进:i指向小于基准元素的序列的末尾,j指向等于基准元素的序列的末尾,k指向当前遍历到的元素,说到这里应该可以了程序c++实现:
2012-05-12 11:43:52
2510
原创 归并排序,空间复杂度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
9966
1
c++复现theano卷积神经网络的前向计算过程
2014-01-09
c++实现多层神经网络
2013-10-22
卷积神经网络详述
2013-05-08
Linux C函数参考手册(PDF版).pdf
2013-04-10
《Qt+Creator快速入门》pdf
2013-03-06
QML与C++交互使用
2013-01-21
QML培训资料
2013-01-17
qt学习之路
2013-01-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人