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

网站开发微信支付详细教程如何提升网站的权重

网站开发微信支付详细教程,如何提升网站的权重,网页设计家乡南京,手机营销网站模板免费下载目录 1. 写在前面2. 环境搭建3. 卷积神经网络4. 数字手写体识别实现 1. 写在前面 这是我的本科毕设#xff0c;今天终于差不多降完重了哈哈#xff0c;总共耗时一个半月#xff0c;写完赶紧趁热打铁来记录一下整个学习过程。本文是基于你了解了lenet-5模型结构进行的手写体识… 目录 1. 写在前面2. 环境搭建3. 卷积神经网络4. 数字手写体识别实现 1. 写在前面 这是我的本科毕设今天终于差不多降完重了哈哈总共耗时一个半月写完赶紧趁热打铁来记录一下整个学习过程。本文是基于你了解了lenet-5模型结构进行的手写体识别系统设计包括手写体数字识别与手写体汉字识别准确率分别达到了99.52%和93.64%左右在本文里不会去详细介绍有关lenet-5模型的各层原理这个信息来源特别多但是会对编写代码的每一步进行详细解释鉴于我的学习历程发现很多博文代码没有解释因此我觉得是特别适合了解理论但不会编代码的小白学习的。 2. 环境搭建 先说一下我的实验环境:Anaconda2019.10PycharmTensorflow2. 1。电脑配置是系统windows10CPUi5-7200u GPUGeForce 920MX计算能力应该是5。原以为环境搭建应该是挺简单的但是在遇坑的时候才发现这里面还是有很多的学问的如果没有了解这方面的知识后面很容易出现很多意想不到的“惊喜”。这里要着重推荐一下北大的tensorflow笔记第一课便是环境的搭建后续的视频也是非常值得去学习。如果觉得看视频比较麻烦也可以直接看一下我的这一篇文章。 搭建成功后下面让我们开始迷人的深度学习之旅吧 3. 卷积神经网络 卷积神经网络的开篇之作LeNet-5产生于1998年从根本来说CNN就是一个多层感知机基本思想是局部连接、权值共享与采样。卷积其实就是卷积计算在图像分类问题的卷积运算中每个像素pixel代表一个神经元neural cell同一个卷积核Convolution kernel)内每个像素所在神经元连接上一层部分神经元这便是局部连接第 m层特征图Feature Map与第 m-1层特征图建立连接时,第 m-1层的不同神经元连接相同的神经元会共享权重将部分像素映射为新的像素值输出为第 m1层特征图。     采样是在时间或者空间上对输入特征图进行降低分辨率的处理保持了网络的空间不变性。这三种特点使得在处理二维图像的问题上图像可以直接作为网络的输入有效解决了传统识别算法中特征提取难的问题尤其是在输入数据的扭曲上具有很强的鲁棒性和网络泛化能力等。 卷积计算 本篇论文主要是以实践为主因此在这只做简单的介绍。有关LeNet-5模型的结构及卷积网络训练原理需要大家自行了解下面咱们直接奔入正题 4. 数字手写体识别实现 我采用的是MNIST数据集该数据集是封装在keras库的datasets里面可以直接调用。本文我是用keras库直接堆叠网络结构适合新手下面直接看代码。 卷积神经网络训练六步法 第一步import import tensorflow as tf from matplotlib import pyplot as plt from net import net1, net2, net3 # 这里是我自己搭建的三个网络 from tensorflow.keras.optimizers import Adam # 优化器 from tensorflow.keras.preprocessing.image import ImageDataGenerator # 数据增强函数 from tensorflow.keras.callbacks import ReduceLROnPlateau # 回调学习率函数第二步加载数据集 mnist tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) mnist.load_data() # x_train.shape:(60000,28,28)y_train.shape:(10000,28,28) # 说明mnist数据集训练集与测试集样本分别为60000个、10000个图像数据为28*28的像素矩阵整体训练集与测试集为三维张量 # y_train.shape:(60000,) # 标签是数值一维张量# 将训练集转变为四维张量并归一化 # 这里转为四维张量是因为keras库的卷积层要求输入为四维张量归一化是方便网络训练 x_train x_train.reshape(-1, 28, 28, 1) / 255.0 x_test x_test.reshape(-1, 28, 28, 1) / 255.0# 把标签转成独热码一维的概率向量这里跟后面选择的损失函数与评价指标有联系 # 因为加载的数据集标签都是数值形式如果选用交叉熵损失函数Categorical_Crossentropy为损失函数就需要转变独热码形式 # y_train utils.to_categorical(y_train, num_classes10) # y_test utils.to_categorical(y_test, num_classes10)第三步kears.Sequential # 搭建卷积神经网络 model tf.keras.Sequential([Conv2D(input_shape(28, 28, 1), filters32, kernel_size(5, 5), activationrelu, paddingsame),MaxPool2D(pool_size(2, 2)),Conv2D(filters32, kernel_size(5, 5), activationrelu),MaxPool2D(pool_size(2, 2), strides2),Conv2D(filters64, kernel_size(3, 3), activationrelu),Conv2D(filters64, kernel_size(3, 3), activationrelu),Flatten(),# 输出层Dense(10, activationsoftmax)]) # 打印网络结构 model.summary()第四步 model.compile 模型设定优化器、损失函数、评价指标的选用 optimizer Adam() # 一般都选 adam优化器默认学习率为1e-3这里我们选用另外一种交叉熵函数Sparse_Categorical_Crossentropy和准确率评价指标sparse_categorical_accuracymodel.compile(optimizeroptimizer, losstf.keras.losses.SparseCategoricalCrossentropy(from_logitsFalse),metrics[sparse_categorical_accuracy])# 回调学习率这个目的是为了提高准确率如果准确率迭代3次还没有增长就降低学习率为原来的0.5倍最低只能降到1e-5 # 经过我的一些实验结果最后发现acc与loss曲线会收敛的更加平滑 learning_rate_reduction ReduceLROnPlateau(monitorval_sparse_categorical_accuracy, patience3, modeauto,verbose1, factor0.5, min_lr1e-5)# 数据增强增强模型的泛化能力是防止过拟合的一种方法 data_augment ImageDataGenerator(rotation_range10, zoom_range0.1, width_shift_range0.1, height_shift_range0.1,horizontal_flipFalse, vertical_flipFalse)第五步model.fit或者model.fit_generator 模型训练 # 训练模型每喂入32组数据打乱样本迭代100次verbose是日志输出形式有123默认为1表示每个banch都输出2表示一行一行的输出3表示不输出 history model.fit_generator(data_augment.flow(x_train, y_train, batch_size32), epochs100, verbose2,validation_data(x_test, y_test), callbacks[learning_rate_reduction], shuffleTrue)# 保存模型因为本模型是我优化之后的所以这里直接保存下来运行结果是输出一个h5文件保存了模型的结构与参数后面的GUI设计会用到这个文件 model.save(jun_model1.h5)第六步model.evaluate # 评估模型打印测试集loss和acc loss, acc model.evaluate(x_test, y_test, verbose0) print(训练完成\n) print(Test loss is {:5f}.format(loss)) print(Test accuracy is {:5.2f}% .format(100 * acc))在这里我还加了一个可视化代码几乎适用于每一个网络注意如果你的损失函数和准确率不是Sparse_Categorical_Crossentropy和sparse_categorical_accuracy那么对应的acc与val_acc就要改写代码。 # 训练集和验证集的acc和loss曲线可视化 acc history.history[sparse_categorical_accuracy] val_acc history.history[val_sparse_categorical_accuracy] loss history.history[loss] val_loss history.history[val_loss] plt.subplot(1, 2, 1) plt.plot(acc, labelTraining Accuracy) plt.plot(val_acc, labelValidation Accuracy) plt.title(Training and Validation Accuracy) plt.legend()plt.subplot(1, 2, 2) plt.plot(loss, labelTraining Loss) plt.plot(val_loss, labelValidation Loss) plt.title(Training and Validation Loss) plt.legend() plt.show()训练结束loss曲线与acc曲线如下图所示 发现误差与准确率都收敛说明网络训练良好再看结果发现识别准确率达到了99.52%网络训练非常成功 创作中·······
http://www.w-s-a.com/news/951481/

相关文章:

  • 郑州做网站哪家公司好国外购买空间的网站有哪些
  • 资讯cms网站有那些餐饮品牌策划设计公司
  • 网站策划选题网站布局优化
  • 网站建设3000字wordpress 微信 主题制作
  • 代做寄生虫网站网站菜单效果
  • 网站备案为什么这么慢目录更新 wordpress
  • 视频在线制作网站Wordpress 外链图片6
  • 网站域名后缀有什么用网站建设的投资预算怎么写
  • 化妆品网站建设网站惠州网站关键字优化
  • 保定网站制作企业下载天眼查企业查询官网
  • 中山企业网站建设公司制作一个景点的网站
  • 连云港集团网站建设株洲建设网站
  • 做运动鞋评价的网站南山做网站联系电话
  • 网站开发公众号开发海南做公司网站
  • 论企业网站建设的必要性微信小程序做一个多少钱
  • 网站制作价格是多少元上海市中小企业服务中心
  • 网站建设管理人员济宁网站建设top
  • 桂林网站建设桂林网站的元素有哪些
  • 广东网站开发推荐网页制作个人简历模板教程
  • e建网保定百度seo公司
  • 网站建设中html代码网络培训课堂app
  • 无锡做网站seo自己做的网站如何上传网上
  • 园林景观网站模板小白怎么做跨境电商
  • 找第三方做网站 需要注意企业网站带数据库
  • 北京南站到北京站flash网站制作单选框和复选框ui组件
  • 网站建设核电集团网站设计案例
  • 宝塔做的网站能不能访问上海的广告公司网站建设
  • 网站会员系统方案新能源网站建设哪家好
  • 全球网站域名域名被墙查询
  • 做期货看资讯什么网站好哈尔滨网站设计联系方式