当前位置: 首页 > news >正文

做网站的科技公司策划案推广

做网站的科技公司,策划案推广,小程序做网站,wordpress付费附件下载惦记cnn很久了#xff0c;一直搞机器视觉#xff0c;走不出来#xff0c;现在megauging已经实现#xff0c;说明书也写了不少#xff0c;该突破的突破了#xff0c;该改进的也改进了#xff0c;一个心病治好了#xff0c;有空把人工智能在机器视觉上的延伸#xff0c;…惦记cnn很久了一直搞机器视觉走不出来现在megauging已经实现说明书也写了不少该突破的突破了该改进的也改进了一个心病治好了有空把人工智能在机器视觉上的延伸补一补。自己也是一直认为人工智能是在机器视觉上发展起来的所以做这些事情也是顺理成章。 前头有几篇自己研究bpnet的资料不成气候现在可以补齐。 后面的突破那些个前面bpnet的公式推导仍然是必不可少我这里就省略了。 网上看到有c手写数字识别基于mnist数据集顺便翻译成c#但没有成功直觉上估计是自己在翻译二维数组过程中有问题因为数学的推导我已经反复核对过了 c有兴趣的可以参考利用c编写bp神经网络实现手写数字识别详解 - AlphaInf - 博客园 后来发现直觉不对二维数组没错错了两处 1c和c#的random函数使用不同 2d【10】这个数组初始化不对 然后我觉得学习的时间太长就改进了一下具体如下 28*28的图像使用3*3的高斯核平滑然后隔行隔列取像素形成14*14的图像然后全连接 196-》128-》10或者196-》80-》10训练结果都很好自己要求不很高达到95分就行。 下面是自己的c#代码 double learnRate 0.2f; //学习率          int n 196; //输入层点个数          int p 128; //隐藏层节点个数          int q 10; //输出层节点个数  //与推导公式保持一致          //double x[n],hi[p],ho[p],yi[q],yo[q],d[q];         double[] xI new double[14*14];         double[] hI new double[128];         double[] hO new double[128]; double[] yi new double[10];         double[] yO new double[10];         //所训练的网络采用两个矩阵表示          double[,] w1 new double[196, 128];         double[,] w2 new double[128, 10]; void init()         {             Random ran new Random();                        for (int i 0; i n; i)                 for (int j 0; j p; j)                 {                                       //  w1[i, j] 0.1;                   w1[i,j]   ran.Next(-100, 100)/100f;                   //  w1[i][j] ran.Next(0, 65535) % 10 / 5f - 1;                 }             //zhege zhengfu yi zhijian henmiao20240912                         for (int i 0; i p; i)                 for (int j 0; j q; j)                 {                                         // w2[i, j] 0.1; w2[i,j] ran.Next(-100, 100) / 100f;                     // w2[i][j] ran.Next(0, 65535) % 10 / 5f - 1;                 } } 以上初始化要说明的是权重都初始化为【-1,1】之间的随机数图像每个像素除以255图像每个像素归一化到【0,1】 int[] d new int[10];         int[] last new int[60000];         //激活函数          public double sigmoid(double x)         {             return 1 / (1f Math.Exp(-x));         }         //前向传播函数          public void forward()         {             //计算hi前需要对其进行清空              //  memset(hi, 0, sizeof(hi));             hI new double[128];             //通过w1计算输入层-隐藏层输入节点              for (int i 0; i n; i)//196                 for (int j 0; j p; j)//128 hI[j] xI[i] * w1[i,j]; //通过激活函数对隐藏层进行计算              for (int i 0; i p; i)                 //hO[i] sigmoid(hI[i]bh[i]);                 hO[i] sigmoid(hI[i] );             计算yi前需要对其进行清空              //memset(yi, 0, sizeof(yi));             yi new double[10];             //通过w2计算隐藏层-输出层             for (int i 0; i p; i)                 for (int j 0; j q; j) yi[j] hO[i] * w2[i,j]; //通过激活函数求yo             for (int i 0; i q; i)                 //yO[i] sigmoid(yi[i]by[i]);                 yO[i] sigmoid(yi[i] );         }         //判断输出的答案是多少          int getAns()         {             int ans 0;             for (int i 1; i q; i)                 if (yO[i] yO[ans]) ans i;             return ans;         } 下面是训练函数 void train(int cas)         {                                xI hello[cas]; int num labels[cas];             d new int[10];              d[num] 1;             forward();             int ans getAns();             if (num ans)                 last[cas] 1;             back();         } 上面训练函数中xI hello[cas];来自下面对mnist数据集的解析高斯化和归一化都在里头 double[][] hello new double[60000][];         void ReadMnistImages(string filePath)         {             using (FileStream fileStream new FileStream(filePath, FileMode.Open, FileAccess.Read))             using (BinaryReader reader new BinaryReader(fileStream))             {                 // 跳过文件头的前16个字节                 reader.ReadBytes(16);                 int h 28;                 int w 28;                 while (fileStream.Position fileStream.Length)                 {                     byte[] image reader.ReadBytes(28 * 28); // MNIST图像大小为28x28                     处理图像数据                     byte[] showoutput new byte[28 * 28];                     //Blur(image, showoutput, 28, 28, 5);                     ... for (int j 1; j (h - 1); j)                     {                         for (int i 1; i (w - 1); i)                         {                             int n0 (j * w i);                             int wo (image[n0 - w - 1] 2 * image[n0 - w] image[n0 - w 1]                                                     2 * image[n0 - 1] 4 * image[n0] 2 * image[n0 1]                                                     image[n0 w - 1] 2 * image[n0 w] image[n0 w 1]);//未作除以16                             showoutput[n0] (byte)(wo 4);//完成除以16                         }                     } byte[] showoutput14 new byte[14 * 14];                     int k 0;                     for (int j 1; j 28; j 2)                     {                         for (int i 1; i 28; i 2)                         {                             int nn j * 28 i;                             showoutput14[k] showoutput[nn];                                                         k; }                     }                     gaoshoutuxiang196.Add(showoutput14);                 }              //while循环完成60000图片的读取和高斯处理 //下面for循环完成60000图片在【0,1】的归一化 for (int xx 0; xx 60000; xx)                 {                     hello[xx] new double[196];                     for (int i 0; i 196; i)                     {                         hello[xx][i] gaoshoutuxiang196[xx][i] / 255f;                     }                                      }             }         } 下面是反传播back函数 public double dsigmoid(double x)         {             return x * (1 - x);         }         //反向传播函数          void back()         {             //对w2进行更新              for (int i 0; i p; i)//128                 for (int j 0; j q; j)//10                 {                                        double delta (yO[j] - d[j]) * dsigmoid(yO[j]) ;//图像28*28是ling则标签是0d[]{1,0,0,0,0,0,0,0,0,0};图像28*28是wu则标签是5d[]{0,0,0,0,0,1,0,0,0,0}                     w2[i, j] - delta * learnRate * hO[i];                            } //对反向传播进行预处理                          double[] W2 new double[p];//p128             //    memset(W2,0,sizeof(W2));             for (int j 0; j p; j)                 for (int k 0; k q; k)                     W2[j] (yO[k] - d[k]) * dsigmoid(yO[k]) * w2[j,k];//图像28*28是壹则标签是1d[]{0,1,0,0,0,0,0,0,0,0};图像28*28是jiu则标签是9d[]{0,0,0,0,0,0,0,0,0,1} //对w1进行更新             for (int i 0; i n; i)//196                 for (int j 0; j p; j)                 {                     double delta dsigmoid(hO[j]) * xI[i] * W2[j];                     w1[i,j] - delta * learnRate;                 }                   } 最后就是调用执行学习训练60000万次以及把最后十次结果显示出来 private void button1trainMnist_Click(object sender, EventArgs e)         {             DateTime dt DateTime.Now;                       for (int cas 0; cas 60000; cas)             {                 train(cas);             }                     int P 100;                     int he 59000;             for (int n 0; n 9; n)             {                 int hh 0;                 for (int i 0; i P; i)                 {                     hh last[he i]; }                 textBox42对比信息.Text he.ToString() , hh.ToString() \r\n;                 he 100;             }                         TimeSpan sp DateTime.Now - dt;             textBox44.Text sp.ToString();         } c程序和我这个程序都没有引入bias其实正如c作者所言97分 后来我引入了bias【】觉得正规一些发现反而不如这个程序 原因是bias【】更新计算对了但写的地方不对导致学习成绩下降成绩这是一个很隐蔽的错误接下来我会讲到很久才发现bug很崩溃一度不想用bias【】 今天先到这里
http://www.hkea.cn/news/14323488/

相关文章:

  • 网站建设拟解决问题长春建站公司网站
  • 布吉做网站公司网站设计步骤ppt
  • 楼市南京做凶宅的网站wordpress page 父页面
  • 怎么自己做视频网站html wordpress套用
  • 东莞做网站网站南京网站建设小程序
  • 电商网站设计流程图沧州最新消息今天
  • 免费建设网站怎么样宜昌市建设局网站
  • 如何构建网站建网站 京公网安
  • 网页设计中优秀的网站网站和微信公众号建设方案
  • 合肥建设局网站网站建设 规范
  • 观澜网站建设wordpress删除多余图片的插件
  • 江门论坛网站建设deals网站建设
  • 美食网站建设项目预算帮助安装wordpress
  • 做预算兼职的网站阿里云网站建设教程
  • 搭建网站 优帮云最好看中文字幕国语电影
  • 百度一下就会知道了阳江企业网站排名优化
  • dede网站建站教程wordpress删除脚标
  • 常州网络推广seo商城
  • 招商网站建设方案做美工用什么素材网站
  • 网站建设douyanet制作很好的网站
  • 常德哪里有做网站公司网页设计费用
  • 做外贸家纺资料网站桥东企业做网站
  • 小说盗版网站怎么做建国外网站买完域名后怎么做
  • 石家庄网站关键词推广手机网站 建设
  • 怎么做算命网站深圳网站建设哪家比较专业
  • 微网站建设找哪家建设部网站39文件
  • 网站做多少层级互联网服务平台官网
  • 站长之家0如何更改wordpress登录密码错误
  • 微网站方案怎么写大基建最新消息
  • 阜宁做网站需要多少钱国外ip代理app