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

网站建设的语言个人做网站如何赚钱吗

网站建设的语言,个人做网站如何赚钱吗,热搜榜上2023年热搜,怎么做网贷网站文章目录 0 前言1 简介2 LeNet-5 模型的介绍2.1 结构解析2.2 C1层2.3 S2层S2层和C3层连接 2.4 F6与C5层 3 写数字识别算法模型的构建3.1 输入层设计3.2 激活函数的选取3.3 卷积层设计3.4 降采样层3.5 输出层设计 4 网络模型的总体结构5 部分实现代码6 在线手写识别7 最后 0 前言… 文章目录 0 前言1 简介2 LeNet-5 模型的介绍2.1 结构解析2.2 C1层2.3 S2层S2层和C3层连接 2.4 F6与C5层 3 写数字识别算法模型的构建3.1 输入层设计3.2 激活函数的选取3.3 卷积层设计3.4 降采样层3.5 输出层设计 4 网络模型的总体结构5 部分实现代码6 在线手写识别7 最后 0 前言 优质竞赛项目系列今天要分享的是 卷积神经网络手写字符识别 - 深度学习 该项目较为新颖适合作为竞赛课题方向学长非常推荐 学长这里给一个题目综合评分(每项满分5分) 难度系数3分工作量3分创新点4分 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate 1 简介 该设计学长使用python基于TensorFlow设计手写数字识别算法并编程实现GUI界面构建手写数字识别系统。 这是学长做的深度学习demo大家可以用于毕业设计。 这里学长不会以论文的形式展现而是以编程实战完成深度学习项目的角度去描述。 项目要求主要解决的问题是手写数字识别最终要完成一个识别系统。 设计识别率高的算法实现快速识别的系统。 2 LeNet-5 模型的介绍 学长实现手写数字识别使用的是卷积神经网络建模思想来自LeNet-5如下图所示 2.1 结构解析 这是原始的应用于手写数字识别的网络我认为这也是最简单的深度网络。 LeNet-5不包括输入一共7层较低层由卷积层和最大池化层交替构成更高层则是全连接和高斯连接。 LeNet-5的输入与BP神经网路的不一样。这里假设图像是黑白的那么LeNet-5的输入是一个32*32的二维矩阵。同 时输入与下一层并不是全连接的而是进行稀疏连接。本层每个神经元的输入来自于前一层神经元的局部区域(5×5)卷积核对原始图像卷积的结果加上相应的阈值得出的结果再经过激活函数处理输出即形成卷积层C层。卷积层中的每个特征映射都各自共享权重和阈值这样能大大减少训练开销。降采样层S层为减少数据量同时保存有用信息进行亚抽样。 2.2 C1层 第一个卷积层C1层由6个特征映射构成每个特征映射是一个28×28的神经元阵列其中每个神经元负责从5×5的区域通过卷积滤波器提取局部特征。一般情况下滤波器数量越多就会得出越多的特征映射反映越多的原始图像的特征。本层训练参数共6×(5×51)156个每个像素点都是由上层5×525个像素点和1个阈值连接计算所得共28×28×156122304个连接。 2.3 S2层 S2层是对应上述6个特征映射的降采样层pooling层。pooling层的实现方法有两种分别是max-pooling和mean- poolingLeNet-5采用的是mean- pooling即取n×n区域内像素的均值。C1通过2×2的窗口区域像素求均值再加上本层的阈值然后经过激活函数的处理得到S2层。pooling的实现在保存图片信息的基础上减少了权重参数降低了计算成本还能控制过拟合。本层学习参数共有1*6612个S2中的每个像素都与C1层中的2×2个像素和1个阈值相连共6×(2×21)×14×145880个连接。 S2层和C3层连接 S2层和C3层的连接比较复杂。C3卷积层是由16个大小为10×10的特征映射组成的当中的每个特征映射与S2层的若干个特征映射的局部感受野大小为5×5相连。其中前6个特征映射与S2层连续3个特征映射相连后面接着的6个映射与S2层的连续的4个特征映射相连然后的3个特征映射与S2层不连续的4个特征映射相连最后一个映射与S2层的所有特征映射相连。 此处卷积核大小为5×5所以学习参数共有6×(3×5×51)9×(4×5×51)1×(6×5×51)1516个参数。而图像大小为28×28因此共有151600个连接。 S4层是对C3层进行的降采样与S2同理学习参数有16×11632个同时共有16×(2×21)×5×52000个连接。 C5层是由120个大小为1×1的特征映射组成的卷积层而且S4层与C5层是全连接的因此学习参数总个数为120×(16×251)48120个。 2.4 F6与C5层 F6是与C5全连接的84个神经元所以共有84×(1201)10164个学习参数。 卷积神经网络通过通过稀疏连接和共享权重和阈值大大减少了计算的开销同时pooling的实现一定程度上减少了过拟合问题的出现非常适合用于图像的处理和识别。 3 写数字识别算法模型的构建 3.1 输入层设计 输入为28×28的矩阵而不是向量。 3.2 激活函数的选取 Sigmoid函数具有光滑性、鲁棒性和其导数可用自身表示的优点但其运算涉及指数运算反向传播求误差梯度时求导又涉及乘除运算计算量相对较大。同时针对本文构建的含有两层卷积层和降采样层由于sgmoid函数自身的特性在反向传播时很容易出现梯度消失的情况从而难以完成网络的训练。因此本文设计的网络使用ReLU函数作为激活函数。 3.3 卷积层设计 学长设计卷积神经网络采取的是离散卷积卷积步长为1即水平和垂直方向每次运算完移动一个像素。卷积核大小为5×5。 3.4 降采样层 学长设计的降采样层的pooling方式是max-pooling大小为2×2。 3.5 输出层设计 输出层设置为10个神经网络节点。数字0~9的目标向量如下表所示 4 网络模型的总体结构 5 部分实现代码 使用Python调用TensorFlow的api完成手写数字识别的算法。 注我的程序运行环境是Win10,python3.。 当然也可以在Linux下运行由于TensorFlow对py2和py3兼容得比较好在Linux下可以在python2.7中运行。 ​ #!/usr/bin/env python2# -*- coding: utf-8 -*-author: 丹成学长 Q746876041#import modulesimport numpy as npimport matplotlib.pyplot as plt#from sklearn.metrics import confusion_matriximport tensorflow as tfimport timefrom datetime import timedeltaimport mathfrom tensorflow.examples.tutorials.mnist import input_datadef new_weights(shape):return tf.Variable(tf.truncated_normal(shape,stddev0.05))def new_biases(length):return tf.Variable(tf.constant(0.1,shapelength))def conv2d(x,W):return tf.nn.conv2d(x,W,strides[1,1,1,1],paddingSAME)def max_pool_2x2(inputx):return tf.nn.max_pool(inputx,ksize[1,2,2,1],strides[1,2,2,1],paddingSAME)#import datadata input_data.read_data_sets(./data, one_hotTrue) # one_hot means [0 0 1 0 0 0 0 0 0 0] stands for 2print(Size of:)print(--Training-set:\t\t{}.format(len(data.train.labels)))print(--Testing-set:\t\t{}.format(len(data.test.labels)))print(--Validation-set:\t\t{}.format(len(data.validation.labels)))data.test.cls np.argmax(data.test.labels,axis1) # show the real test labels: [7 2 1 ..., 4 5 6], 10000valuesx tf.placeholder(float,shape[None,784],namex)x_image tf.reshape(x,[-1,28,28,1])y_true tf.placeholder(float,shape[None,10],namey_true)y_true_cls tf.argmax(y_true,dimension1)# Conv 1layer_conv1 {weights:new_weights([5,5,1,32]),biases:new_biases([32])}h_conv1 tf.nn.relu(conv2d(x_image,layer_conv1[weights])layer_conv1[biases])h_pool1 max_pool_2x2(h_conv1)# Conv 2layer_conv2 {weights:new_weights([5,5,32,64]),biases:new_biases([64])}h_conv2 tf.nn.relu(conv2d(h_pool1,layer_conv2[weights])layer_conv2[biases])h_pool2 max_pool_2x2(h_conv2)# Full-connected layer 1fc1_layer {weights:new_weights([7*7*64,1024]),biases:new_biases([1024])}h_pool2_flat tf.reshape(h_pool2,[-1,7*7*64])h_fc1 tf.nn.relu(tf.matmul(h_pool2_flat,fc1_layer[weights])fc1_layer[biases])# Droupout Layerkeep_prob tf.placeholder(float)h_fc1_drop tf.nn.dropout(h_fc1,keep_prob)# Full-connected layer 2fc2_layer {weights:new_weights([1024,10]),biases:new_weights([10])}# Predicted classy_pred tf.nn.softmax(tf.matmul(h_fc1_drop,fc2_layer[weights])fc2_layer[biases]) # The output is like [0 0 1 0 0 0 0 0 0 0]y_pred_cls tf.argmax(y_pred,dimension1) # Show the real predict number like 2# cost function to be optimizedcross_entropy -tf.reduce_mean(y_true*tf.log(y_pred))optimizer tf.train.AdamOptimizer(learning_rate1e-4).minimize(cross_entropy)# Performance Measurescorrect_prediction tf.equal(y_pred_cls,y_true_cls)accuracy tf.reduce_mean(tf.cast(correct_prediction,float))with tf.Session() as sess:init tf.global_variables_initializer()sess.run(init)train_batch_size 50def optimize(num_iterations):total_iterations0start_time time.time()for i in range(total_iterations,total_iterationsnum_iterations):x_batch,y_true_batch data.train.next_batch(train_batch_size)feed_dict_train_op {x:x_batch,y_true:y_true_batch,keep_prob:0.5}feed_dict_train {x:x_batch,y_true:y_true_batch,keep_prob:1.0}sess.run(optimizer,feed_dictfeed_dict_train_op)# Print status every 100 iterations.if i%1000:# Calculate the accuracy on the training-set.acc sess.run(accuracy,feed_dictfeed_dict_train)# Message for printing.msg Optimization Iteration:{0:6}, Training Accuracy: {1:6.1%}# Print it.print(msg.format(i1,acc))# Update the total number of iterations performedtotal_iterations num_iterations# Ending timeend_time time.time()# Difference between start and end_times.time_dif end_time-start_time# Print the time-usageprint(Time usage:str(timedelta(secondsint(round(time_dif)))))test_batch_size 256def print_test_accuracy():# Number of images in the test-set.num_test len(data.test.images)cls_pred np.zeros(shapenum_test,dtypenp.int)i 0while i num_test:# The ending index for the next batch is denoted j.j min(itest_batch_size,num_test)# Get the images from the test-set between index i and jimages data.test.images[i:j, :]# Get the associated labelslabels data.test.labels[i:j, :]# Create a feed-dict with these images and labels.feed_dict{x:images,y_true:labels,keep_prob:1.0}# Calculate the predicted class using Tensorflow.cls_pred[i:j] sess.run(y_pred_cls,feed_dictfeed_dict)# Set the start-index for the next batch to the# end-index of the current batchi jcls_true data.test.clscorrect (cls_truecls_pred)correct_sum correct.sum()acc float(correct_sum) / num_test# Print the accuracymsg Accuracy on Test-Set: {0:.1%} ({1}/{2})print(msg.format(acc,correct_sum,num_test))# Performance after 10000 optimization iterationsoptimize(num_iterations10000)print_test_accuracy()savew_hl1 layer_conv1[weights].eval()saveb_hl1 layer_conv1[biases].eval()savew_hl2 layer_conv2[weights].eval()saveb_hl2 layer_conv2[biases].eval()savew_fc1 fc1_layer[weights].eval()saveb_fc1 fc1_layer[biases].eval()savew_op fc2_layer[weights].eval()saveb_op fc2_layer[biases].eval()np.save(savew_hl1.npy, savew_hl1)np.save(saveb_hl1.npy, saveb_hl1)np.save(savew_hl2.npy, savew_hl2)np.save(saveb_hl2.npy, saveb_hl2)np.save(savew_hl3.npy, savew_fc1)np.save(saveb_hl3.npy, saveb_fc1)np.save(savew_op.npy, savew_op)np.save(saveb_op.npy, saveb_op) 运行结果显示测试集中准确率大概为99.2%。 查看混淆矩阵 6 在线手写识别 7 最后 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate
http://www.pierceye.com/news/453760/

相关文章:

  • 西安优秀的集团门户网站建设公司网站建设中 优秀账户的标准
  • 网站建设的对比分析移动设备网站开发注意点
  • 在word上怎么做网站链接网站开发试题
  • 自己做网站新手入门淮北论坛招聘网
  • 建网站的意义大学跳蚤市场网站建设
  • 平阳做网站成都网站优化公司哪家好
  • 庆阳北京网站建设广东省建设工程执业中心网站
  • 佛山哪里有做网站的大学生文创产品设计
  • 电商网站建设运城网站图片链接怎么做的
  • 服务器建网站教程宁波网络营销推广制作
  • 微信公众号属于网站建设网站云解析域名解析
  • 网站的建设及推广在哪找可以做网站的
  • 网站经常修改好不好北京互联网公司50强
  • 知识网站有哪些h5用什么制作
  • 广州网站制作联系方式上海共有多少家企业
  • 自己建一个网站需要什么网站关键词分析工具
  • 建三江建设局网站四川省建设厅官方网站电话
  • 福建志佳建设工程发展有限公司网站vi品牌包装
  • 专业门户网站开发公司龙岩正规全网品牌营销招商
  • 网站怎么做qq微信登陆政务网站的建设时期的概述
  • 购物网站的目的和意义西安做网站xamokj
  • 厦门市建设局网站网站开发周记30篇
  • 工业园区门户网站建设方案塘沽网站开发
  • 郑州网站设计 公司驻马店市可以做网站的公司
  • 推荐盐城网站开发安陆网站开发
  • wordpress中文网站模板软件开发者路线图
  • 福清市建设局网站深圳网站制作品牌祥奔科技
  • 工程建设采购有哪些网站做网络销售怎么样
  • wordpress数据库和网站文件下载商业网站成功的原因
  • 30岁转行做网站设计百度秒收网站