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

苏州市住房城乡建设局网站首页mifa网站开发费用

苏州市住房城乡建设局网站首页,mifa网站开发费用,提升学历教育,个人做论坛网站有哪些1 实验介绍 1.1 简介 Mnist手写体图像识别实验是深度学习入门经典实验。Mnist数据集包含60,000个用于训练的示例和10,000个用于测试的示例。这些数字已经过尺寸标准化并位于图像中心#xff0c;图像是固定大小(28x28像素)#xff0c;其值为0到255。为简单起见#xff0c;每…1 实验介绍 1.1 简介 Mnist手写体图像识别实验是深度学习入门经典实验。Mnist数据集包含60,000个用于训练的示例和10,000个用于测试的示例。这些数字已经过尺寸标准化并位于图像中心图像是固定大小(28x28像素)其值为0到255。为简单起见每个图像都被平展并转换为784(28*28)个特征的一维numpy数组。 1.2 实验目的 学会如何搭建全连接神经网络。掌握搭建网络过程中的关键点。掌握分类任务的整体流程。 2.2 实验环境要求  推荐在华为云ModelArts实验平台完成实验也可在本地搭建python3.7.5和MindSpore1.0.0环境完成实验。 2.3 实验总体设计 创建实验环境在本地搭建MindSpore环境。 导入实验所需模块该步骤通常都是程序编辑的第一步将实验代码所需要用到的模块包用import命令进行导入。 导入数据集并预处理神经网络的训练离不开数据这里对数据进行导入。同时因为全连接网络只能接收固定维度的输入数据所以要对数据集进行预处理以符合网络的输入维度要求。同时设定好每一次训练的Batch的大小以Batch Size为单位进行输入。 模型搭建利用mindspore.nn的cell模块搭建全连接网络包含输入层隐藏层输出层。同时配置好网络需要的优化器损失函数和评价指标。传入数据并开始训练模型。 模型评估利用测试集进行模型的评估。 2.4 实验过程 2.4.1 搭建实验环境 Windows下MindSpore实验环境搭建并配置Pycharm请参考【机器学习】Windows下MindSpore实验环境搭建并配置Pycharm_在pycharm上安装mindspore_弓长纟隹为的博客-CSDN博客 官网下载MNIST数据集 MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges 在MNIST文件夹下建立train和test两个文件夹train中存放train-labels-idx1-ubyte和train-images-idx3-ubyte文件test中存放t10k-labels-idx1-ubyte和t10k-images-idx3-ubyte文件。 2.4.2  模型训练、测试及评估 #导入相关依赖库 import os import numpy as np from matplotlib import pyplot as plt import mindspore as ms #context模块用于设置实验环境和实验设备 import mindspore.context as context #dataset模块用于处理数据形成数据集 import mindspore.dataset as ds #c_transforms模块用于转换数据类型 import mindspore.dataset.transforms as C #vision.c_transforms模块用于转换图像这是一个基于opencv的高级API import mindspore.dataset.vision as CV #导入Accuracy作为评价指标 from mindspore.nn.metrics import Accuracy #nn中有各种神经网络层如DenseReLu from mindspore import nn #Model用于创建模型对象完成网络搭建和编译并用于训练和评估 from mindspore.train import Model #LossMonitor可以在训练过程中返回LOSS值作为监控指标 from mindspore.train.callback import LossMonitor #设定运行模式为动态图模式并且运行设备为昇腾芯片 context.set_context(modecontext.GRAPH_MODE, device_targetCPU) #MindSpore内置方法读取MNIST数据集 ds_train ds.MnistDataset(os.path.join(rD:\Dataset\MNIST, train)) ds_test ds.MnistDataset(os.path.join(rD:\Dataset\MNIST, test))print(训练数据集数量,ds_train.get_dataset_size()) print(测试数据集数量,ds_test.get_dataset_size()) #该数据集可以通过create_dict_iterator()转换为迭代器形式然后通过get_next()一个个输出样本 imageds_train.create_dict_iterator().get_next() #print(type(image)) print(图像长/宽/通道数,image[image].shape) #一共10类用0-9的数字表达类别。 print(一张图像的标签样式,image[label]) DATA_DIR_TRAIN D:/Dataset/MNIST/train # 训练集信息 DATA_DIR_TEST D:/Dataset/MNIST/test # 测试集信息def create_dataset(trainingTrue, batch_size128, resize(28, 28), rescale1 / 255, shift-0.5, buffer_size64):ds ms.dataset.MnistDataset(DATA_DIR_TRAIN if training else DATA_DIR_TEST)# 定义改变形状、归一化和更改图片维度的操作。# 改为28,28的形状resize_op CV.Resize(resize)# rescale方法可以对数据集进行归一化和标准化操作这里就是将像素值归一到0和1之间shift参数可以让值域偏移至-0.5和0.5之间rescale_op CV.Rescale(rescale, shift)# 由高度、宽度、深度改为深度、高度、宽度hwc2chw_op CV.HWC2CHW()# 利用map操作对原数据集进行调整ds ds.map(input_columnsimage, operations[resize_op, rescale_op, hwc2chw_op])ds ds.map(input_columnslabel, operationsC.TypeCast(ms.int32))# 设定洗牌缓冲区的大小从一定程度上控制打乱操作的混乱程度ds ds.shuffle(buffer_sizebuffer_size)# 设定数据集的batch_size大小并丢弃剩余的样本ds ds.batch(batch_size, drop_remainderTrue)return ds #显示前10张图片以及对应标签,检查图片是否是正确的数据集 dataset_show create_dataset(trainingFalse) data dataset_show.create_dict_iterator().get_next() images data[image].asnumpy() labels data[label].asnumpy()for i in range(1,11):plt.subplot(2, 5, i)#利用squeeze方法去掉多余的一个维度plt.imshow(np.squeeze(images[i]))plt.title(Number: %s % labels[i])plt.xticks([]) plt.show()# 利用定义类的方式生成网络Mindspore中定义网络需要继承nn.cell。在init方法中定义该网络需要的神经网络层 # 在construct方法中梳理神经网络层与层之间的关系。 class ForwardNN(nn.Cell):def __init__(self):super(ForwardNN, self).__init__()self.flatten nn.Flatten()self.relu nn.ReLU()self.fc1 nn.Dense(784, 512, activationrelu)self.fc2 nn.Dense(512, 256, activationrelu)self.fc3 nn.Dense(256, 128, activationrelu)self.fc4 nn.Dense(128, 64, activationrelu)self.fc5 nn.Dense(64, 32, activationrelu)self.fc6 nn.Dense(32, 10, activationsoftmax)def construct(self, input_x):output self.flatten(input_x)output self.fc1(output)output self.fc2(output)output self.fc3(output)output self.fc4(output)output self.fc5(output)output self.fc6(output)return outputlr 0.001 num_epoch 10 momentum 0.9net ForwardNN() #定义loss函数改函数不需要求导可以给离散的标签值且loss值为均值 loss nn.loss.SoftmaxCrossEntropyWithLogits( sparseTrue, reductionmean) #定义准确率为评价指标用于评价模型 metrics{Accuracy: Accuracy()} #定义优化器为Adam优化器并设定学习率 opt nn.Adam(net.trainable_params(), lr)#生成验证集验证机不需要训练所以不需要repeat ds_eval create_dataset(False, batch_size32) #模型编译过程将定义好的网络、loss函数、评价指标、优化器编译 model Model(net, loss, opt, metrics)#生成训练集 ds_train create_dataset(True, batch_size32) print( Starting Training ) #训练模型用loss作为监控指标并利用昇腾芯片的数据下沉特性进行训练 model.train(num_epoch, ds_train,callbacks[LossMonitor()],dataset_sink_modeTrue)#使用测试集评估模型打印总体准确率 metrics_resultmodel.eval(ds_eval) print(metrics_result)备注 若报错 AttributeError: ‘DictIterator’ object has no attribute ‘get_next’ 这是说MindSpore数据类中缺少 “get_next”这个方法但是在MNIST图像识别的官方代码中却使用了这个方法这就说明MindSpore官方把这个变成私密方法。 只需要在源码iterators.py中找到DictIterator这个类将私有方法变成公有方法就行了即去掉最前面的下划线。 参考mindspore 报错 AttributeError: ‘DictIterator‘ object has no attribute ‘get_next‘_create_dict_iterator_TNiuB的博客-CSDN博客 MindSpore:前馈神经网络时报错‘DictIterator‘ has no attribute ‘get_next‘_skytier的博客-CSDN博客 更多问题请参考Window10 上MindSpore(CPU)用LeNet网络训练MNIST - 知乎
http://www.hkea.cn/news/14451478/

相关文章:

  • 手机自媒体网站模板做视频up主视频网站
  • 同性男做性视频网站代码判断网站
  • 做水果的网站小鸟云WordPress数据库连接
  • 新野微网站开发100个创意创业项目
  • 制作简易网站外贸网站建设哪家有名
  • 徐州英才网最新招聘信息seo文案范例
  • 网站怎么做301重定向设计家官网室内设计
  • 用表格做网站教程wordpress页面添加分类
  • 抚顺做网站的公司30个适合大学生创业的项目
  • 网站建设后如何检测合肥工程建设网站
  • 设计网站公司名称百度seo公司
  • 石家庄网站编辑来宾建设工程造价网站
  • 做数模必逛的网站谁给个网站呀
  • 苏中建设 网站o2o网站策划
  • 网站源码获取在线域名查询ip地址138
  • html5自建网站外国服务器ip地址
  • 企石镇网站仿做中国建设门户网登录入口
  • net网站同时支持 生成静态文件和伪静态网站首页介绍
  • 学校网站建设的背景广州专业展台制作
  • 美橙互联网站模板网站建设的优点和不足
  • 抚州市企业网站建设企业信息
  • 网站总体规划设计说明云教育科技网站建设
  • 重庆茶叶网站建设市场营销策划ppt
  • dedecms网站地图插件网站备案 做网站
  • 在线做logo的网站阿勒泰建设局网站
  • 钦州住房和城乡建设局网站潍坊网站建设收费标准
  • 建设地方美食网站的目的报价表
  • 手机免费网站建设哪家公司好怎么查个人是否注册工商执照
  • 成都网站建设排行榜中国建设招标网是个假网站
  • 风景区网站建设论文范文WordPress如何更改文章链接