- 博客(347)
- 资源 (1)
- 收藏
- 关注
原创 对比多线程与batch(在极简单cnn上操作)
wcnn的偏差[0][0] += delta11*a0[0] + delta12*a0[1] + delta21*a0[3] + delta22*a0[4];wcnn的偏差[0][1] += delta11*a0[1] + delta12*a0[2] + delta21*a0[4] + delta22*a0[5];wcnn的偏差[0][0] += delta11*a0[0] + delta12*a0[1] + delta21*a0[3] + delta22*a0[4];而线程是3个人,每个人做一次!
2025-12-16 16:19:00
909
原创 极简单bpnet对比极简单cnn
wcnn的偏差[0][0] = delta11*a0[0] + delta12*a0[1] + delta21*a0[3] + delta22*a0[4];wcnn的偏差[0][1] = delta11*a0[1] + delta12*a0[2] + delta21*a0[4] + delta22*a0[5];wcnn的偏差[0][0] = delta11*a0[0] + delta12*a0[1] + delta21*a0[3] + delta22*a0[4];lapulas卷积核!
2025-12-13 09:22:10
920
原创 极简单cnn对称之美
double delta11 = E偏导zII * wcnn[1][0]*dsigmoid(aI[0]);double delta12 = E偏导zII * wcnn[1][1]*dsigmoid(aI[1]);wcnn[1][i] = wcnn[1][i] - 常数a * wcnn的偏差[1][i];wcnn[0][i] = wcnn[0][i] - 常数a * wcnn的偏差[0][i];wcnn的偏差[0][1] =wcnn的偏差[1][1] =wcnn的偏差[1][2] =
2025-12-10 10:35:03
919
1
原创 极简单cnn编程测试
wcnn的偏差[0][0] = delta11*a0[0] + delta12*a0[1] + delta21*a0[3] + delta22*a0[4];wcnn的偏差[0][1] = delta11*a0[1] + delta12*a0[2] + delta21*a0[4] + delta22*a0[5];wcnn的偏差[0][2] = delta11*a0[3] + delta12*a0[4] + delta21*a0[6] + delta22*a0[7];//e偏差z2*zII偏导w2【11】
2025-12-09 16:29:25
491
原创 一个极简版的bpnet,识别九宫格x
w的偏差[0][1] = -(1 - o) * dsigmoid(o) * u1 * dsigmoid(y1) * a2;w的偏差[1][0] = -(1 - o) * dsigmoid(o) * u2 * dsigmoid(y2) * a1;w的偏差[1][1] = -(1 - o) * dsigmoid(o) * u2 * dsigmoid(y2) * a2;w的偏差[0][1] = -(1 - o) * dsigmoid(o) * u1 * dsigmoid(y1) * a2;
2025-12-09 12:44:27
739
原创 我的第三个cudnn程序(cifar10改cifar100)
/输入->>>c1,5*5,1*28*28-》6*24*24。//输入->>>c1,5*5,1*28*28-》6*24*24。//输入->>>c1,5*5,1*28*28-》6*24*24。//输入->>>c1,5*5,1*28*28-》6*24*24。所以记录一下,得分低,说明以后还有余地!改起来没那么顺手,不急,慢慢来,时间久了,就熟练了!
2025-12-06 20:08:00
767
原创 cifar100binary数据集c++加载
这五万个标签整数存入数组,然后去掉重复,最后数组就只有100个元素,即100类,也就是数组的序号与数组里的数一一对应了!ok,如果借用我们前面现成的lenet程序来训练,只需要改softmax,输出层分类时,把10类改成100类,就可以训练了!if(myList[j]==a )//二者相等时,取序号j,比如a=4,那么j=0。k ++)//10类。str1内部.Format("%d:%d:%d",i,a,j);
2025-12-04 08:16:54
853
原创 lenet改vgg成功后,我们再改为最简单的resnet
j++)//resnet第一步,应该是s2,不是c3,但s2是12*16*16,不是24*16*16,so,问题就来了202507230639,还不好解决!其实算不上前进,是倒退了,但实现了resnet,这次resnet最简单的复盘,是上了60分,以前怎么也过不了60分,实线resnet,虚线+实线resnet都不行!7月初版都要低十分!
2025-12-02 21:03:06
507
原创 我的第二个cudnn程序(训练cifar10突破60分)
/输入->>>c1,5*5,1*28*28-》6*24*24。//输入->>>c1,5*5,1*28*28-》6*24*24。//输入->>>c1,5*5,1*28*28-》6*24*24。好,我们就围绕上面两点改写程序,学习率改为0.01,训练了40轮,上了61分,我们的策略是,测试分数退步,就改变学习率!//输出的预测概率,softmax后的结果,损失,预测概率的梯度(作为LeNet反向传播的输入)// << " (实际标签=" << h_labels[0] << ")"
2025-12-02 19:22:43
534
原创 lenet改vgg训练cifar10突破71分
void Ccifar10交叉熵lenet5mfcDlg:: convolution_forward_propagation(Layer* pre_layer, Layer* cur_layer, bool* connection_table) //checked and fixed /checked 2.0。//清空公共map的暂存数据。//取中心14*14,c31。if(prelayer_map_count==12&&map_count==16&&(is_pooling==false))//c3层。
2025-11-29 20:21:23
412
原创 cifar10训练第一次突破70分
void Ccifar10交叉熵lenet5mfcDlg:: fully_connection_backward_propagation(Layer* cur_layer, Layer* pre_layer) //checked。void Ccifar10交叉熵lenet5mfcDlg::fully_connection_forward_propagation(Layer* pre_layer, Layer* cur_layer)第一,这次复盘,想突破70,保持自我,不再信别人说的!
2025-11-29 19:33:05
369
原创 用caffe做个人脸识别
/此处是32位灰度图像(黑白);//640*480转227*227。我们打开电脑自带的摄像头软件,放置在left=0,top=0的地方,然后程序中。然后遮住摄像头,识别了一下,softmax处理后的结果是7左右,还行!//不用glob_rgbValues[nn * 4+3]alpha分量。,实时截屏rect=(0,0,640,480)区域,然后我们调用。训练后,识别了一下,softmax处理后的结果是10左右。
2025-11-21 16:38:37
937
原创 把lenet改造成alexnet或者caffe(c#版本)
/为该层的所有卷积核分配内存。// //delta Bh2【j】=delta Bh2【j】*ds(ho2[j]),j取0....119/////////index_kernel=120*16,index_kernel_weight=25。//卷积6*11*11********************************//池化2*2*16***************************************//池化2*2*6*****************************
2025-11-21 09:19:30
677
原创 人工智能突破从60分开始(训练cifar10,三)
void Ccifar10交叉熵lenet5mfcDlg::init_layer(Layer* layer, int prelayer_map_count, int map_count, int kernel_width, int kernel_height, int map_width, int map_height, bool is_pooling)// fwrite(&(layer->map[i].bias), sizeof(layer->map[i].bias), 1, save_file);
2025-11-20 10:14:42
266
原创 人工智能突破从60分开始(训练cifar10,二)
/////////////////////////////////////////////////////////if(prelayer_map_count==6&&map_count==16&&(is_pooling==false))//c3层:96*5*5//有3合并1,四合并1,6合并1。if(prelayer_map_count==1&&map_count==6&&(is_pooling==false))//c1层:6*5*5//每一个核是单独的。
2025-11-20 10:14:32
257
原创 人工智能突破从60分开始(训练cifar10)
/读取出文件的头信息,该信息不参与计算。好像网上又找不到了!//更新 S_x ->> C_x kernel 的 delta_weight。
2025-11-20 10:10:56
253
原创 人工智能程序参数保存和加载的进化2
strT+= 重复保存( c1_convolution_layer .map_count, c11_convolution_layer,&temp);strT+= 重复保存( s4_pooling_layer.map_count, c5_convolution_layer,&temp);//c1层,4-12。while (std::getline(ss, item, ',')) { // 分割每个项目(使用逗号)std::cerr << "转换错误: " << item << std::endl;
2025-11-20 08:06:57
538
原创 人工智能程序参数保存和加载的进化
/save_layer_kernel_para新(s2_pooling_layer.map_count,&c3_convolution_layer,connection_table,3);save_layer_kernel_para新(s2_pooling_layer.map_count,&c3_convolution_layer,NULL,3);先看,实验成功的那个(lenet+宏特征训练cifar一直最烦人保存不了,都接近70分了,快20轮了,训练一次好几分钟,总不能手抄参数保存吧!
2025-11-20 07:39:52
821
原创 我的第一个cudnn(cuda)人工智能程序(lenet)
/取出权重,可以一试,保存加载不必再训练喽。//卷积核的参数(kernel暂时是正方形的)
2025-11-19 18:57:36
965
原创 我的第一个pytorch人工智能程序(最简单而高效的方式)
这个最接近我的c++cpu版本,我的c++版vgg+resnet也是最简单的实现(其实很难,可以写本教科书了),在上面折腾一下(当前60分),可以上80分?4096*2=32*16*16(=64*8*8*2),实际就是16*16,没有池化,如果池化,就是8*8,,这里的网络广度是32.同上法,没学过python,没学过pytorch,不知道太多,so,我们只关注重点,仍然是这个红色forward!假定你已经懂了原理,其实不懂也没关系,读的多了,操练多了,自然就懂了,就像读古文!维纳滤波也是如此神奇!
2025-11-19 15:25:44
708
原创 cifar10训练成绩快100了,为什么测试成绩突破不了70?
瞬间明白的是:dropout出现时,他是随机的概率,比如在经典lenet5中,6-》16的table中(这个就是dropout原型机),概率达到了0.6,即三合一,四合一,以及出现的6合一的情形,所使用的元素达到了0.6*6*16,如果我们不做这种table,大多数情况就是这样,就没有dropout和bn层的意义了,因为你已经何凯明初始化过了!唯一没测试的是resnet,原因是,自己全部程序都是cpu处理的,resnet训练一次要15分钟,受不了,一天40个ehco(轮回)训练,全在等时间!
2025-08-08 15:23:34
2077
原创 机器之眼与胡希恕自学笔记
caffe(咖啡)改版也集成到了megauing中,与bpnet功能相似,但仅仅使用识别功能,也没多线程,也没定位功能,机器视觉中常常会遇到,是或不是的问题,就是针对这个问题做出的尝试,另外,用咖啡尝试了一下usb摄像头的人脸识别,还行,继续观察,直到稳定再说!现在改名机器之眼,这是一个很好的名字,机器代表自己的机器视觉成果,眼代表智能,所以这个名字是对自己充满期待,智能与机器视觉合二为一。因为研究中医也有7年了,慢慢沉淀到胡希恕伤寒论,因为我在这里头看到科学的光芒,辣了我的眼,其他就看不进去了!
2025-08-08 10:11:16
451
1
原创 和之美与正态分布的感悟
分享(感悟):这个世界是不完美的,要像苏轼一样,总是要看到别人的好(王安石的诗词),看到世界的好(赤壁之美),否则,你就不会审美,一辈子都会坠入自己的审恶习惯中,痛苦而不自拔 之所以这样,是现在的社会恶象现少了,而性本恶的社会,是避之不及的,世之好,人之好更是少,审恶之人的经典语句,做旧社会的人,不如做新社会的狗 审恶之人会觉醒,但大多数人不会!当虚幻的美澄清,审恶审美之人,会像范仲淹一样,发现古人思想中-和之美(中庸之道,阴阳),即春和景明之美!也就是美有范围,自由之美是不存在的!
2025-08-04 11:12:09
434
原创 ai四部(lenet5,caffe,vgg,resnet),莫着急!
已完成的vgg好处及resnet都还在发酵中,未得施展,实际,应把每一个用到极致加进去,而不是囫囵吞枣般组合,妙理需细磨,自己太急了!cifar10训练,自己从61提到69.17,一个是6->16变成了12->24,另一个用到了宏细特征结合,还有就是learnrate有序变小,另外dropout与动量似乎无用!闲下来(天太热,世事烦索),利用茶思和宁静的威力,就像动量,跳出局部的坑,才能到达全局最优!脑瓜本来就是神经网络,现在有了人工智能,有一个好处是,对比,入座,互参!
2025-08-04 11:10:01
133
原创 ai与望闻问切
故做了自己的第二爱好!技术是相通的,也可以相互启示,故能一脚迈入!意识到数学科学与光学科学的重要性,并深入研究指导自己程序如何写,这是知行合一的表现!中医文化又深厚根植我们的血脉中,比如煮肉汤,谁不放些调料啊!而把中医变成科学公式,是我们这一代人的责任,我们的中医迈向科学缺的就是的这一步!文化中一定有科学,我们应该提炼出来科学的公式,使得中医大发展!伤寒论使用汤药治病是最早的分子生物学靶向作用治病典范!这样笼统的话,就像说,四大发明是我们的!觉得自己更像应用层面开出的花!我们这一代,脑袋全是现代科学!
2025-04-26 10:29:21
258
原创 机器之眼megauging(工业机器视觉软件)是否开源?
自己的心血:机器之眼megauging(工业机器视觉软件)当下还没开源,如果有兴趣,csdn有开发日记,可以先参考!像我这样懒惰的人,应该找一个找我毛病的人,天天督促着!估计执行力会更好一些!昨天在考虑是否开源?
2025-04-26 10:28:02
160
原创 40岁的苦与乐
与人接触,发现他们接近40岁时,已经很清晰知道自己要什么,并深入其中,固执而不为他!与知识斗,与自己意识斗,与计算机斗!这是一条捷径,损失最小!后来翻翻旧账,自己曾经好像也是这样过来的!目标狭隘,全神贯注,容易进入窄门,但,一定要进去!而伟人的与天斗,与地斗,与人斗,难度太大!所以,你的年长,有幸成为他们的前浪!所以,现在才会有相互启示的开阔视野!至于以后突破中医或ai,全赖此功!不算成功,不算失败,已经很不错!当前我国的现状是,和平而科技的!不敢移步ai,也不敢移步中医!战战兢兢,如履薄冰!
2025-04-26 10:25:10
185
原创 cnn中的dropout技术
编程中犯浑,无意栽柳,我就不必去求证了,辛顿估计也是这样的(前人很感兴趣的研究出了成果),促使他的dropout技术,论文我也没看,我就这个风格,喜欢瞎猜!然而,我没意识到使用序号(6*16)index=i*w+j,在6*18中已经变了,然而没有意识到,训练成绩反而成了佼佼者!我在无意中,把这个connection_table增加了两列=6*18,增加两列使用五合一。按辛顿的意思,dropout是随机丢弃一部分,我想,这是什么意思,有意的安排,变成了乱序,不就是随机吗?,可能给了辛顿灵感!
2025-03-25 22:09:12
604
原创 机器视觉匹配中使用bpnet匹配(补充,形状匹配与bpnet匹配对比)
bpnet也就是这样,在手写数字识别上,还行,训练平均能够97分,一旦放入机器视觉匹配,1024*768的图像,+-45度旋转识别,慢的头大,看看我做实验的数据:(毫秒:小于40毫秒)+-45度搜索匹配,得1分钟,不行啊!得分55,角度-19,匹配位置(464,260),毫秒;得分99.3,角度-19,匹配位置(464,260),45秒;得分66,角度-8,匹配位置(548,184),毫秒;得分64,角度1,匹配位置(504,164),毫秒;得分99.3,角度1,匹配位置(504,164),47秒;
2025-03-25 12:32:41
215
原创 卷积神经网络(cnn,类似lenet-1,八)
/每一个deltacnnx,都对应25个28*28中的数据元素,以及一个5*5的卷积核。Point temppt = 求二维(i, jilumnna[i].Y, jilumnna[i].X);其实公式是没有问题的,问题出在程序中,第一次卷积中,forward方向少了sigmoid!刚好我有彩色相机,不必10个输出,1个就好,在机器视觉中试一试,也不需要什么数据集!但是再往上走,可能性变为0.训练12万次也不行,当时也不知道,就认了!还是那句话,权重参数w就是卷积核,卷积核就是权重w!
2025-02-28 17:11:35
933
原创 卷积神经网络(cnn,He初始化+relu+softmax+交叉熵+卷积核+后更新,七)
是初心,很重要,有一段时间丢了,现在又找回来了!确实效果好,学习率0.2时,不觉察,但是0.02就会很明显!3层bpnet手写上97分。学习率,以前全部0.2.想分数上升,这是必须的!
2025-02-28 16:36:12
278
原创 卷积神经网络(cnn,He初始化+relu+softmax+交叉熵+卷积核,六)
才能推导出he初始化+relu+softmax+交叉熵+卷积核=cnn公式:,这才是cnn。我使用28*28gaos后,获得14*14图像作为网络输入,用了8个5*5 的卷积核!实际上,我们前面卷积核cnn中找x【?】的方法,一模一样,一个代码都不用改!现在w1cnn变成一个卷积核了,x不知道取什么值了,就是这个问题。里边只改动e初始化+relu+softmax+交叉熵即可!先实验1个卷积核,ok,再扩展!只能满足:He初始化+relu+softmax+交叉熵。我是直接在自己的八个卷积核上实验,ok。
2025-02-28 16:09:36
645
原创 He初始化+relu+softmax+交叉熵(五)
(四)中,看了很久,才发出来,原因是有个东西吓我一大跳!经确认,是正确的。毕竟程序已经行云流水了!这个博文中关于交叉熵的推导要注意一点:=p【k】-y【k】,这个公式的推导是ok的,要做一点点修改:针对loss(c)有=p【k】-y【k】;c也是0到9.所以L=loss(c)那么:(p【k】-y【k】),所以我们的程序才能正常跑数学上真不敢马虎啊!否则,程序不是白瞎了嘛!公式已经推导完成,我们再谈he初始化在back中的作用和影响,以做结尾。
2025-02-26 15:47:35
444
原创 He初始化+relu+softmax+交叉熵(四)
X【196】-》HI【80】/HO【80】-》YI【10】/z【10】,z【10】对应的概率p【10】,期望是y【10】X【196】-》HI【80】/HO【80】-》YI【10】/YO【10】,期望是d【10】用笨办法,展开他,当k指定时,对z[k](等同p[k])求偏导!别人程序看不懂,没关系,根据自己推导的公式,码代码!好,这就大功告成了,i,j,k搞清楚了,w1偏导数推导,以及i,j的准确位置和。X,HI之间用w1【196,80】好,我们求w1,这里关键在于烦人的。的偏导数,当j=10,
2025-02-26 12:37:09
443
原创 He初始化+relu+softmax+交叉熵(三)
X【196】-》HI【80】/HO【80】-》YI【10】/z【10】,z【10】对应的概率p【10】,期望是y【10】是relu+softmax+交叉熵的思维导图。X【196】-》HI【80】/HO【80】-》YI【10】/YO【10】,期望是d【10】是bpnet思维导图。X【196】-》HI【80】/HO【80】-》YI【10】/YO【10】,期望是d【10】————————————————(复制过来,乱码,太不厚道)X,HI之间用w1【196,80】X,HI之间用w1【196,80】
2025-02-26 10:47:35
423
原创 He初始化+relu+softmax+交叉熵(二)
恰好,实现了,97界限在一分类的识别和精细定位匹配上,差错很大,这个界限要到达996,997的样子,匹配识别效果,才能显现!其实也不用学六万次,针对十个数字,其实6千次就可以了(精细匹配中我就学5000次,3千,2千次都试过,还是5千次训练学习较好,毕竟一分类嘛!你要cnn,我们就要增加隐层,我用了bpnet的4层网络和5层网络,卷积核也用上了,学习训练6万次,很难上95,平均93,很恼火,去年就是这个情况。实际,在手写数字识别十个数字分类上,人们的视线不在是bpnet,而是卷积核,卷积核神经网络cnn。
2025-02-26 09:05:33
989
原创 He初始化+relu+softmax+交叉熵(一)
另外,F(yl-1)>0,F(yl-1)=yl-1;这个是找到了方差和期望(均值)的关系。下面的F(yl-1)就是relu函数。其他不懂,就翻翻书,概率论上有相关系数,方差,期望和高斯正态分布。dx(这个是书上期望的定义,期望我认为就是均值),这个就是公式8,y1是输入样本,我们归一化处理,即方差var(y1)=1,这个东西的方差,yl= hI固定roi[j]。F(yl-1)<0,就等于0,公式8变公式9.这是一个连锁反应,我们让每层输出方差都为1,则。所以F(yl-1)^2=(yl-1)^2。
2025-02-25 15:32:52
366
原创 机器视觉匹配中使用bpnet匹配(五,转人工智能)
w1固定roi[i, j] = randomNormalDistribution() /(float) Math.Sqrt(size / 2f);当我研究了relu,并发现了he(kaiming)初始化,我才恍然大悟,他在相关系数归一化上下功夫,使用了高斯正态分布n~(0,1)如果你观察到了,并取得好的结果,一定要总结深挖!这里说明,我这种人,属于应用型的,搞出来,就不总结了,反而,失败了,回去总结!因为,我的结果很稳定,很准确了,我就在没有深究!当出现-4,5,3,7之类的值,就要差一些。
2025-02-25 11:47:54
415
原创 机器视觉匹配中使用bpnet匹配,四
而x=1>0,leaky relu=1,当这两个值进入sigmod(x),x最好工作在非线性区域,x在(-10,10)中最好,如果像leaky relu=-10^7这样的值经常进入sigmod,那么sigmod就没有意义了,可能就是他们说的,饱和区域工作!(忽然想起,二极管常工作在饱和区域,很形象)1,我们不能进步,就退步,即站在自己肩上不能前进,那么我就不动,bpnet+异步多线程并发不是很好,很稳定,很快,很准确嘛!2,我们要转人工智能,这里打的败仗,是人工智能学习中最好的经验,总结,就是前进!
2025-02-25 11:11:47
309
机器视觉+gige工业相机新突破+megauging稳定版本20250123更新
2025-01-20
工业机器视觉设计实现 megauging(向光有光)
2023-12-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅