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

网站备案服务商查询苏州seo外包

网站备案服务商查询,苏州seo外包,长沙网站建设服务商,西宁专业网站制作公司一.概述 在文章【机器学习】一个例子带你了解神经网络是什么中#xff0c;我们大致了解神经网络的正向信息传导、反向传导以及学习过程的大致流程#xff0c;现在我们正式开始进行代码的实现#xff0c;首先我们来实现第一步的运算过程模拟讲解#xff1a;正向传导。本次代…一.概述 在文章【机器学习】一个例子带你了解神经网络是什么中我们大致了解神经网络的正向信息传导、反向传导以及学习过程的大致流程现在我们正式开始进行代码的实现首先我们来实现第一步的运算过程模拟讲解正向传导。本次代码实现将以“手写数字识别”为例子。 二.测试训练数据集的获取 首先我们需要通过官网获取到手写数字识别数据集数据集一共分为四个部分分别是训练集的图片六万张、训练集的标签、测试集的图片一万张以及测试集的标签。所以我们在代码中可以使用键值表示对应的key-value url_base http://yann.lecun.com/exdb/mnist/ key_file {train_img:train-images-idx3-ubyte.gz,train_label:train-labels-idx1-ubyte.gz,test_img:t10k-images-idx3-ubyte.gz,test_label:t10k-labels-idx1-ubyte.gz } 同时我们需要将下载的文件保存到与代码同一级目录下 dataset_dir os.path.dirname(os.path.abspath(__file__)) 下载部分十分简单么就不在此赘述需要注意的是代码使用了python的urlretrieve函数该函数需要使用头文件urllib.request需要自行下载 def download_mnist():for filename in key_file.values():file_path dataset_dir / filenameif os.path.exists(file_path):returnprint(Downloading filename ... )urllib.request.urlretrieve(url_base filename, file_path)print(Done) 三.测试训练数据集的加载 下载完数据集后我们需要将其加载到我们的程序中以供后续的使用首先是判断一下我们是否已经下载过数据集如果没有下载则先进行下载操作再执行其他步骤 if not os.path.exists(save_file) :download_mnist()dataset _convert_numpy()print(Creating pickle file ...)with open(save_file, wb) as f:pickle.dump(dataset, f, -1)print(Done!) 以上代码有个需要注意的地方因为下载完数据集之后无法直接给到python使用所以还需要对数据进行格式处理处理成python可以识别的格式这一步交由函数_convert_numpy实现 def _convert_numpy(): dataset {}dataset[train_img] _load_img(key_file[train_img])dataset[train_label] _load_label(key_file[train_label])dataset[test_img] _load_img(key_file[test_img])dataset[test_label] _load_label(key_file[test_label])return dataset 其中_load_img函数负责处理图片数据 def _load_img(file_name):file_path dataset_dir \\MNIST\\ file_nameprint(Converting file_name to NumPy Array ...)with gzip.open(file_path, rb) as f:data np.frombuffer(f.read(), np.uint8, offset16)data data.reshape(-1, img_size)print(Done)return data 其中_load_label函数负责处理标签数据 def _load_label(file_name):file_path dataset_dir \\MNIST\\ file_nameprint(Converting file_name to NumPy Array ...)with gzip.open(file_path, rb) as f:labels np.frombuffer(f.read(), np.uint8, offset8)print(Done)return labels 函数中使用到的都是一些python常用的函数所以具体作用不在赘述可自行查询。介绍完_convert_numpy函数我们继续回到数据集加载函数本身为了方便后续数据集的批量调用等操作我们需要在加载数据后对其进行进一步的数据清洗整理等预处理分别为数据归一化normalize、图像展开flatten以及图像标签对应(one_hot_label)先将三个功能代码贴上然后我们再详细讲解各个功能的具体作用 with open(save_file,rb) as f:dataset pickle.load(f)if normalize:for key in [train_img,test_img]:dataset[key] dataset[key].astype(np.float32)if not flatten:for key in (train_img, test_img):dataset[key] dataset[key].reshape(-1, 1, 28, 28)if one_hot_label:dataset[train_label] _change_one_hot_label(dataset[train_label])dataset[test_label] _change_one_hot_label(dataset[test_label]) 3.1.数据归一化normalize 数据归一化normalize如果设置为True可以将输入图像归一化为0.01.0 的值。如果将该参数设置为False则输入图像的像素会保持原来的0255。函数实现是使用了python函数中的astype功能将数据用于将数据集指定字段的数据转换为 float32 类型常见于深度学习模型输入前的数据预处理。 dataset[key] dataset[key].astype(np.float32) 3.2.图像展开flatten 图像展开flatten用于设置是否展开输入图像使其变成一维数组。如果将该参数设置为False则输入图像为1 × 28 × 28 的三维数组若设置为True则输入图像会保存为由784 个元素构成的一维数组。函数实现也只是使用到深度学习中常用的reshape函数 dataset[key] dataset[key].reshape(-1, 1, 28, 28) 3.3.图像标签对应(one_hot_label) 图像标签对应one_hot_label用于设置是否将标签保存为onehot表示one-hot representation。one-hot 表示是仅正确解标签为1其余皆为0 的数组就像[0,0,1,0,0,0,0,0,0,0]这样。当one_hot_label为False时就是像7、2这样简单保存正确解标签函数_change_one_hot_label的实现如下 def _change_one_hot_label(X):T np.zeros((X.size, 10))for idx, row in enumerate(T):row[X[idx]] 1return T 以上即为测试训练数据集加载函数的全部内容我们将在下面正式调用一下看看是否能够正常工作在此贴上函数全文 ef load_mnist(normalizeTrue, flattenTrue, one_hot_labelFalse):if not os.path.exists(save_file) :download_mnist()dataset _convert_numpy()print(Creating pickle file ...)with open(save_file, wb) as f:pickle.dump(dataset, f, -1)print(Done!)with open(save_file,rb) as f:dataset pickle.load(f)if normalize:for key in [train_img,test_img]:dataset[key] dataset[key].astype(np.float32)if not flatten:for key in (train_img, test_img):dataset[key] dataset[key].reshape(-1, 1, 28, 28)if one_hot_label:dataset[train_label] _change_one_hot_label(dataset[train_label])dataset[test_label] _change_one_hot_label(dataset[test_label])return (dataset[train_img],dataset[train_label]),(dataset[test_img],dataset[test_label]) 四.测试训练数据集的使用测试 我们可以加载数据集并且查看到各个数据集的形状 (x_train, t_train), (x_test, t_test) load_mnist(flattenTrue,normalizeFalse) # 输出各个数据的形状 print(x_train.shape) # (60000, 784) print(t_train.shape) # (60000,) print(x_test.shape) # (10000, 784) print(t_test.shape) # (10000,) 根据输出我们可以看到训练集图片有六万张每张图片有784各像素28*28训练集标签和照片数量一样那是肯定的测试集图片和标签数量比训练集的少主要用来验证模型学习后的正确性。 我们甚至还能随机从数据集中抽取一张照片查看一下实际样子具体实现如下 def img_show(img): pil_img Image.fromarray(np.uint8(img)) pil_img.show() (x_train, t_train), (x_test, t_test) load_mnist(flattenTrue,normalizeFalse) img x_train[0] label t_train[0] print(label) # 5 print(img.shape) # (784,) img img.reshape(28, 28) # 把图像的形状变成原来的尺寸 print(img.shape) # (28, 28) img_show(img) 输出的图片如图下所示 在后面的文章中我们将开始正式步入主题讲解神经网络如何学习各层次之间如何传递数值如何反向传导计算损失又在重新学习最终实现传入一张手写数字就能自动识别出具体的数字的。
http://www.hkea.cn/news/14356994/

相关文章:

  • 傻瓜式做网站程序什么是网站的访问流量
  • 广州网站建设 名片制作 网站管理百度网站首页的设计理念
  • 静态后台管理网站模板做标书网站
  • 海口的网站建设公司中山快速建站合作
  • 有域名自己怎么做网站家政服务app软件开发
  • 不良网站进入窗口互联网公司市值
  • 壁画网站建设建设手机网站哪个平台比较好
  • 标杆网站建设网站网站建设策划书
  • 网站建设 信息化程度asp.net网站结构
  • 宁波正规网站建设使用方法如何写一个微信小程序
  • 网站域名信息dedecms 网站标题 设置
  • 上海网站制作多少钱h5小程序
  • 网站建设 绍兴的公司哪家好网站左边logo图标怎么做
  • 企业电话号码查询网站seo百度快速排名
  • 海口市网站建设承德住建局官方网站
  • 官方网站建设专家磐石网络做搜狗手机网站优化快
  • 网站建设的阶段中山网站建设文化价位
  • 欧洲手表网站什么是全网营销推广
  • 东莞企业网站设计排名单位网站建设情况总结
  • mysql asp网站广州58同城招聘网最新招聘
  • 做色流网站要注意什么地方网站上传后如何设置首页
  • 公司网站建设优帮云怎么用wordpress搭建网站
  • 汕头网站制作后缀贵阳市 网站建设
  • 成都网站建设空间wordpress 关键词堆砌
  • 优秀国外设计网站app做微信的网站叫什么名字
  • 建设北京公司网站3 阐述网站建设的步骤过程 9分
  • 信用门户网站建设方案推销产品什么网站好
  • 萧山区建设工程质量监督站网站旅游外贸网站建设推广
  • 旅游网站建站目的wordpress ssh
  • 罗岗网站建设河北pc端网站开发