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

用excel可以做网站个人网站可以做什么

用excel可以做网站,个人网站可以做什么,美容院网站制作,网站会员系统制作MNIST 数据集已经是一个几乎每个初学者都会接触的数据集, 很多实验、很多模型都会以MNIST 数据集作为训练对象, 不过有些人可能对它还不是很了解, 那么今天我们一起来学习一下MNIST 数据集。 1.MNIST 介绍 MNIST 数据集来自美国国家标准与技术研究所, National Institute of S… MNIST 数据集已经是一个几乎每个初学者都会接触的数据集, 很多实验、很多模型都会以MNIST 数据集作为训练对象, 不过有些人可能对它还不是很了解, 那么今天我们一起来学习一下MNIST 数据集。 1.MNIST 介绍 MNIST 数据集来自美国国家标准与技术研究所, National Institute of Standards and Technology (NIST). 训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是高中学生, 50% 来自人口普查局 (the Census Bureau) 的工作人员. 测试集(test set) 也是同样比例的手写数字数据. MNIST 数据集包含了四个部分: Training set images: train-images-idx3-ubyte.gz (9.9 MB, 解压后 47 MB, 包含 60,000 个样本)Training set labels: train-labels-idx1-ubyte.gz (29 KB, 解压后 60 KB, 包含 60,000 个标签)Test set images: t10k-images-idx3-ubyte.gz (1.6 MB, 解压后 7.8 MB, 包含 10,000 个样本)Test set labels: t10k-labels-idx1-ubyte.gz (5KB, 解压后 10 KB, 包含 10,000 个标签) Size: 28×28 灰度手写数字图像 Num: 训练集 60000 和 测试集 10000一共70000张图片 Classes: 0123456789 2.数据集读取 2.1官网下载MNIST 数据集 MNIST 数据集可在 http://yann.lecun.com/exdb/mnist/ 获取 注意不要直接点连接复制连接粘贴到新的浏览器标签页搜索就不需要账号密码了 2.2 博主分享 同时博主已将MNIST公开数据集上传至百度网盘大家可以直接下载学习 链接: https://pan.baidu.com/s/1-rurbkWdv_veQD8QcQWcRw 提取码: 0213 2.3 直接下载 如果数据集没有下载修改参数downloadTrue直接去下载数据集 from torchvision import datasets, transformstrain_data datasets.MNIST(root./MNIST,trainTrue,transformtransforms.ToTensor(),downloadTrue)test_data datasets.MNIST(root./MNIST,trainFalse,transformtransforms.ToTensor(),downloadTrue)print(train_data) print(test_data)如果出现这种错误 SyntaxError: Non-UTF-8 code starting with \xca in fileD:\PycharmProjects\model-fuxian\data set\MNIST t.py on line 2, but noencoding declared; see http://python.org/dev/peps/pep-0263/ fordetails 大概率是你没加# coding:gbk为什么呢由于 Python 默认使用 ASCII 编码来解析源代码因此如果源文件中包含了非 ASCII 编码的字符比如中文字符那么解释器就可能会抛出 SyntaxError 异常。加上# -- coding: gbk --这样的注释语句可以告诉解释器当前源文件的字符编码格式是 GBK从而避免源文件中文字符被错误地解析。 如果成功运行会出现这种结果表示已经开始下载了 输出结果 Dataset MNIST Number of datapoints: 60000 Root location: ./MNIST Split: Train StandardTransform Transform: ToTensor() Dataset MNIST Number of datapoints: 10000 Root location: ./MNIST Split: Test StandardTransform Transform: ToTensor() 3.数据集可视化 import torchvision from torchvision import datasets, transforms from torch.utils.data import DataLoader import numpy as np import matplotlib.pyplot as plttrain_data datasets.MNIST(rootmodel-fuxian/data set/MNIST/MNIST/raw/MNIST,trainTrue,transformtransforms.ToTensor(),downloadFalse)train_loader DataLoader(datasettrain_data,batch_size64,shuffleTrue)for num, (image, label) in enumerate(train_loader):image_batch torchvision.utils.make_grid(image, padding2)plt.imshow(np.transpose(image_batch.numpy(), (1, 2, 0)), vmin0, vmax255)plt.show()print(label) 得到图片 这是标签 tensor([2, 1, 7, 7, 2, 4, 2, 2, 0, 1, 7, 1, 5, 7, 9, 0, 2, 7, 4, 7, 0, 2, 7, 1,6, 9, 1, 1, 1, 5, 4, 3, 8, 0, 1, 0, 1, 3, 8, 0, 1, 4, 5, 1, 8, 4, 7, 3,8, 3, 2, 2, 0, 0, 4, 0, 2, 9, 7, 1, 8, 3, 2, 3]) tensor([6, 6, 7, 2, 5, 4, 0, 3, 4, 6, 1, 4, 1, 9, 2, 2, 8, 7, 5, 7, 9, 6, 6, 7,1, 9, 9, 5, 5, 6, 9, 6, 8, 5, 5, 7, 8, 9, 8, 3, 1, 0, 1, 4, 6, 1, 8, 6,1, 4, 6, 7, 1, 9, 5, 4, 3, 4, 6, 1, 7, 3, 7, 6]) tensor([7, 1, 5, 1, 4, 0, 9, 2, 2, 0, 1, 5, 2, 3, 6, 4, 6, 9, 3, 3, 2, 8, 1, 5,8, 0, 1, 4, 5, 6, 2, 6, 4, 9, 2, 0, 7, 2, 0, 1, 2, 4, 4, 6, 5, 9, 1, 2,5, 3, 3, 8, 8, 3, 4, 5, 2, 6, 0, 0, 8, 7, 1, 7])4.使用残差网络RESNET识别手写数字 没有GPU的可以使用CPU不过速度会大打折扣DEVICE torch.device(cuda if torch.cuda.is_available() else cpu)最好是可以使用GPU这样速度会快很多 torch.device(cuda)#使用GPU # codinggbk # 1.加载必要的库 import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim from torchvision import datasets,transforms import argparse# 2.超参数 BATCH_SIZE 32#每批处理的数据 一次性多少个 DEVICE torch.device(cuda)#使用GPU # DEVICE torch.device(cuda if torch.cuda.is_available() else cpu)#使用GPU EPOCHS 4 #训练数据集的轮次 # 3.图像处理 pipeline transforms.Compose([transforms.ToTensor(), #将图片转换为Tensor])# 4.下载加载数据 from torch.utils.data import DataLoader#下载 train_set datasets.MNIST(data,trainTrue,downloadTrue,transformpipeline) test_set datasets.MNIST(data,trainFalse,downloadTrue,transformpipeline)#加载 一次性加载BATCH_SIZE个打乱顺序的数据 train_loader DataLoader(train_set,batch_sizeBATCH_SIZE,shuffleTrue) test_loader DataLoader(test_set,batch_sizeBATCH_SIZE,shuffleTrue)# 5.构建网络模型 class ResBlk(nn.Module): # 定义Resnet Block模块resnet blockdef __init__(self, ch_in, ch_out, stride1): # 进入网络前先得知道传入层数和传出层数的设定:param ch_in::param ch_out:super(ResBlk, self).__init__() # 初始化# we add stride support for resbok, which is distinct from tutorials.# 根据resnet网络结构构建2个block块结构 第一层卷积 卷积核大小3*3,步长为1边缘加1self.conv1 nn.Conv2d(ch_in, ch_out, kernel_size3, stridestride, padding1)# 将第一层卷积处理的信息通过BatchNorm2dself.bn1 nn.BatchNorm2d(ch_out)# 第二块卷积接收第一块的输出操作一样self.conv2 nn.Conv2d(ch_out, ch_out, kernel_size3, stride1, padding1)self.bn2 nn.BatchNorm2d(ch_out)# 确保输入维度等于输出维度self.extra nn.Sequential() # 先建一个空的extraif ch_out ! ch_in:# [b, ch_in, h, w] [b, ch_out, h, w]self.extra nn.Sequential(nn.Conv2d(ch_in, ch_out, kernel_size1, stridestride),nn.BatchNorm2d(ch_out))def forward(self, x): # 定义局部向前传播函数out F.relu(self.bn1(self.conv1(x))) # 对第一块卷积后的数据再经过relu操作out self.bn2(self.conv2(out)) # 第二块卷积后的数据输出out self.extra(x) out # 将x传入extra经过2块block输出后与原始值进行相加out F.relu(out) # 调用relureturn outclass ResNet18(nn.Module): # 构建resnet18层def __init__(self):super(ResNet18, self).__init__()self.conv1 nn.Sequential( # 首先定义一个卷积层nn.Conv2d(1, 32, kernel_size3, stride3, padding0),nn.BatchNorm2d(32))# followed 4 blocks 调用4次resnet网络结构输出都是输入的2倍self.blk1 ResBlk(32, 64, stride1)self.blk2 ResBlk(64, 128, stride1)self.blk3 ResBlk(128, 256, stride1)self.blk4 ResBlk(256, 256, stride1)self.outlayer nn.Linear(256 * 1 * 1, 10) # 最后是全连接层def forward(self, x): # 定义整个向前传播x F.relu(self.conv1(x)) # 先经过第一层卷积x self.blk1(x) # 然后通过4次resnet网络结构x self.blk2(x)x self.blk3(x)x self.blk4(x)x F.adaptive_avg_pool2d(x, [1, 1])# print(after pool:, x.shape)x x.view(x.size(0), -1) # 平铺一维值x self.outlayer(x) # 全连接层return x # 6.定义优化器 model ResNet18().to(DEVICE)#创建模型并将模型加载到指定设备上optimizer optim.Adam(model.parameters(),lr0.001)#优化函数criterion nn.CrossEntropyLoss() # 7.训练 def train_model(model,device,train_loader,optimizer,epoch):# Training settingsparser argparse.ArgumentParser(descriptionPyTorch MNIST Example)parser.add_argument(--batch-size, typeint, default64, metavarN,helpinput batch size for training (default: 64))parser.add_argument(--test-batch-size, typeint, default1000, metavarN,helpinput batch size for testing (default: 1000))parser.add_argument(--epochs, typeint, default14, metavarN,helpnumber of epochs to train (default: 14))parser.add_argument(--lr, typefloat, default1.0, metavarLR,helplearning rate (default: 1.0))parser.add_argument(--gamma, typefloat, default0.7, metavarM,helpLearning rate step gamma (default: 0.7))parser.add_argument(--no-cuda, actionstore_true, defaultFalse,helpdisables CUDA training)parser.add_argument(--dry-run, actionstore_true, defaultFalse,helpquickly check a single pass)parser.add_argument(--seed, typeint, default1, metavarS,helprandom seed (default: 1))parser.add_argument(--log-interval, typeint, default10, metavarN,helphow many batches to wait before logging training status)parser.add_argument(--save-model, actionstore_true, defaultFalse,helpFor Saving the current Model)args parser.parse_args()model.train()#模型训练for batch_index,(data ,target) in enumerate(train_loader):data,target data.to(device),target.to(device)#部署到DEVICE上去optimizer.zero_grad()#梯度初始化为0output model(data)#训练后的结果loss criterion(output,target)#多分类计算损失loss.backward()#反向传播 得到参数的梯度值optimizer.step()#参数优化if batch_index % args.log_interval 0:print(Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}.format(epoch, batch_index * len(data), len(train_loader.dataset),100. * batch_index / len(train_loader), loss.item()))if args.dry_run:break # 8.测试 def test_model(model,device,text_loader):model.eval()#模型验证correct 0.0#正确率global Accuracytext_loss 0.0with torch.no_grad():#不会计算梯度也不会进行反向传播for data,target in text_loader:data,target data.to(device),target.to(device)#部署到device上output model(data)#处理后的结果text_loss criterion(output,target).item()#计算测试损失pred output.argmax(dim1)#找到概率最大的下标correct pred.eq(target.view_as(pred)).sum().item()#累计正确的值text_loss / len(test_loader.dataset)#损失和/加载的数据集的总数Accuracy 100.0*correct / len(text_loader.dataset)print(Test__Average loss: {:4f},Accuracy: {:.3f}\n.format(text_loss,Accuracy)) # 9.调用for epoch in range(1,EPOCHS1):train_model(model,DEVICE,train_loader,optimizer,epoch)test_model(model,DEVICE,test_loader)torch.save(model.state_dict(),model.ckpt)精确度 Test__Average loss: 0.000808,Accuracy: 99.150 最后可以发现准确度达到了99%还高可以看出来残差网络识别手写数字的准确性还是很高的。
http://www.zqtcl.cn/news/963055/

相关文章:

  • 廊坊营销网站团队网站推广报告
  • 商品网站模板多语言企业网站模板
  • 佛山网页制作设计东莞seo推广机构帖子
  • 公司网站开发费用如何入账网站开发与设计实训总结两千字
  • 生物网站模板在线crm厂商
  • 在线制作动画网站ps切图做网站
  • 西安企业网站建设公司虚拟主机可以做视频网站嘛
  • 做淘客网站用什么程序今天杭州新闻最新消息
  • 东莞专业建网站网站制作方案相信乐云seo
  • 网站分页符素材怎么解决
  • 行远金华网站建设公司合肥公司做网站
  • 餐厅类网站模板中国电建市政建设集团有限公司网站
  • 格力网站建设首页六盘水遵义网站建设怎么做
  • 建设工程企业资质工作网站创建网站怎么赚钱的
  • 三水网站建设流感吃什么药最好
  • 洛阳市住房和城乡建设局网站怎么查询企业注册信息
  • 商业摄影网站源码wordpress文章作者
  • 昆明企业网站模板建站漳浦建设局网站更新
  • 企业网站建设策划书微信开发者工具是干嘛的
  • 泵 品牌网站建设WordPress头像不能本地化
  • vue快速建站网站开发法律
  • 家居行业网站开发百度竞价推广账户
  • 粉色大气妇科医院网站源码百度网址大全网址
  • wordpress 留言墙插件优化网站搭建
  • 优秀设计师网站芯片设计公司
  • 铜陵网站建设公司wordpress密码访问插件
  • 一个公司做2个产品网站怎么做的wordpress网站怎么百度的到
  • 邓州做网站做网站seo怎么赚钱
  • 微信小程序开发步骤图长沙百度seo
  • 网站代做仿百度图片网页设计