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

医院网站建设的资料企业没有做网站有的坏处

医院网站建设的资料,企业没有做网站有的坏处,招商网站开发文档,郑州一建南阳分公司目录 一.概念介绍 1.1神经网络核心组件 1.2神经网络结构示意图 1.3使用pytorch构建神经网络的主要工具 二、实现手写数字识别 2.1环境 2.2主要步骤 2.3神经网络结构 2.4准备数据 2.4.1导入模块 2.4.2定义一些超参数 2.4.3下载数据并对数据进行预处理 2.4.4可视化数…目录 一.概念介绍 1.1神经网络核心组件 1.2神经网络结构示意图 1.3使用pytorch构建神经网络的主要工具 二、实现手写数字识别 2.1环境 2.2主要步骤 2.3神经网络结构 2.4准备数据 2.4.1导入模块 2.4.2定义一些超参数 2.4.3下载数据并对数据进行预处理 2.4.4可视化数据集中部分元素 2.4.5构建模型和实例化神经网络 2.4.6训练模型 2.4.7可视化损失函数 2.4.7.1 train  loss  2.4.7.2 test loss 一.概念介绍 神经网络是一种计算模型它模拟了人类神经系统的工作方式由大量的神经元和它们之间的连接组成。每个神经元接收一些输入信息并对这些信息进行处理然后将结果传递给其他神经元。这些神经元之间的连接具有不同的权重这些权重可以根据神经网络的训练数据进行调整。通过调整权重神经网络可以对输入数据进行分类、回归、聚类等任务。 通俗来讲神经网络就是设置一堆参数初始化这堆参数然后通过求导知道这些参数对结果的影响然后调整这些参数的大小。直到参数大小可以接近完美地拟合实际结果。神经网络有两个部分正向传播和反向传播。正向传播是求值反向传播是求出参数对结果的影响从而调整参数。所以神经网络正向传播-反向传播-正向传播-反向传播……      比如我们要预测一个图像是不是猫。如果是猫它的结果就是1如果不是猫它的结果就是0.我们现在有一堆图片有的是猫有的不是猫所以它对应的标签这个是y是0 1 1 0 1。而我们的预测结果可能是对的也可能是错的假设我们的预测结果是0 0 1 1 0.我们有3个预测对了有2个预测错了。那么我们的损失值是2/5。当然这么搞的话太“粗糙”了实际上我们会有一个函数来定义损失值是什么。而且我们的预测结果也不是一个确凿的数字而是一个概率比如我们预测第3张图片是猫的概率是0.8那么我们的预测结果是0.8.总之定义了损失值这个损失值记为J以后我们要让这个损失值尽可能地小。 参考什么是神经网络 - 绯红之刃的回答 - 知乎  1.1神经网络核心组件 神经网络看上去挺复杂节点多层多参数多但其结构都是类似的核心部分和组件都是相通的确定完这些核心组件这个神经网络也就基本确定了。 核心组件包括 1层神经网络的基础数据结构是层层是一个数据处理模块它接受一个或多个张量作为输入并输出一个或多个张量由一组可调整参数描述。 2模型模型是由多个层组成的网络用于对输入数据进行分类、回归、聚类等任务。 3损失函数参数学习的目标函数通过最小化损失函数来学习各种参数。损失函数是衡量模型输出结果与真实标签之间的差异的函数目标是最小化损失函数提高模型性能。 4优化器使损失函数的值最小化。根据损失函数的梯度更新神经网络中的权重和偏置以使损失函数的值最小化提高模型性能和稳定性。 1.2神经网络结构示意图 描述多个层链接在一起构成一个模型或网络输入数据通过这个模型转换为预测值然后损失函数把预测值与真实值进行比较得到损失值损失值可以是距离、概率值等该损失值用于衡量预测值与目标结果的匹配或相似程度优化器利用损失值更新权重参数从而使损失值越来越小。这是一个循环过程损失值达到一个阀值或循环次数到达指定次数循环结束。 1.3使用pytorch构建神经网络的主要工具 参考第3章 Pytorch神经网络工具箱 | Python技术交流与分享 在PyTorch中构建神经网络主要使用以下工具 torch.nn模块提供了构建神经网络所需的各种层和模块如全连接层、卷积层、池化层、循环神经网络等。 torch.nn.functional模块提供了一些常用的激活函数和损失函数如ReLU、Sigmoid、CrossEntropyLoss等。 torch.optim模块提供了各种优化器如SGD、Adam、RMSprop等用于更新神经网络中的权重和偏置。 torch.utils.data模块提供了处理数据集的工具如Dataset、DataLoader等可以方便地处理数据集、进行批量训练等操作。 这些工具之间的相互关系如下 使用torch.nn模块构建神经网络的各个层和模块。 使用torch.nn.functional模块中的激活函数和损失函数对神经网络进行非线性变换和优化。 使用torch.optim模块中的优化器对神经网络中的权重和偏置进行更新以最小化损失函数。 使用torch.utils.data模块中的数据处理工具对数据集进行处理方便地进行批量训练和数据预处理。 二、实现手写数字识别 2.1环境 实例环境使用Pytorch1.0GPU或CPU,源数据集为MNIST。 2.2主要步骤 1利用Pytorch内置函数mnist下载数据 2利用torchvision对数据进行预处理调用torch.utils建立一个数据迭代器 3可视化源数据 4利用nn工具箱构建神经网络模型 5实例化模型并定义损失函数及优化器 6训练模型 7可视化结果 2.3神经网络结构 实验中使用两个隐含层每层激活函数为Relu最后使用torch.max(out,1)找出张量out最大值对应索引作为预测值。 2.4准备数据 2.4.1导入模块 import numpy as np import torch # 导入 pytorch 内置的 mnist 数据 from torchvision.datasets import mnist #导入预处理模块 import torchvision.transforms as transforms from torch.utils.data import DataLoader #导入nn及优化器 import torch.nn.functional as F import torch.optim as optim from torch import nn 2.4.2定义一些超参数 # 定义训练和测试时的批处理大小 train_batch_size 64 test_batch_size 128# 定义学习率和迭代次数 learning_rate 0.01 num_epoches 20# 定义优化器的超参数 lr 0.01 momentum 0.5 #动量优化器通过引入动量参数Momentum在更新参数时考虑之前的梯度信息可以使得参数更新方向更加稳定同时加速梯度下降的收敛速度。动量参数通常设置在0.5到0.9之间可以根据具体情况进行调整。 2.4.3下载数据并对数据进行预处理 #定义预处理函数这些预处理依次放在Compose函数中。 transform transforms.Compose([transforms.ToTensor(),transforms.Normalize([0.5], [0.5])]) #下载数据并对数据进行预处理 train_dataset mnist.MNIST(./data, trainTrue, transformtransform, downloadTrue) test_dataset mnist.MNIST(./data, trainFalse, transformtransform) #dataloader是一个可迭代对象可以使用迭代器一样使用。 train_loader DataLoader(train_dataset, batch_sizetrain_batch_size, shuffleTrue) test_loader DataLoader(test_dataset, batch_sizetest_batch_size, shuffleFalse) 注 ①transforms.Compose可以把一些转换函数组合在一起 ②Normalize([0.5], [0.5])对张量进行归一化这里两个0.5分别表示对张量进行归一化的全局平均值和方差。因图像是灰色的只有一个通道如果有多个通道需要有多个数字如三个通道应该是Normalize([m1,m2,m3], [n1,n2,n3]) ③download参数控制是否需要下载如果./data目录下已有MNIST可选择False。 ④用DataLoader得到生成器这可节省内存。 2.4.4可视化数据集中部分元素 # 导入matplotlib.pyplot库并设置inline模式 import matplotlib.pyplot as plt %matplotlib inline# 枚举数据加载器中的一批数据 examples enumerate(test_loader) batch_idx, (example_data, example_targets) next(examples)# 创建一个图像对象 fig plt.figure()# 显示前6个图像和对应的标签 for i in range(6):plt.subplot(2,3,i1) # 将图像分成2行3列当前位置为第i1个plt.tight_layout() # 自动调整子图之间的间距plt.imshow(example_data[i][0], cmapgray, interpolationnone) # 显示图像plt.title(Ground Truth: {}.format(example_targets[i])) # 显示标签plt.xticks([]) # 隐藏x轴刻度plt.yticks([]) # 隐藏y轴刻度 注 导入matplotlib.pyplot库并设置inline模式以在Jupyter Notebook中显示图像。 枚举数据加载器中的一批数据其中test_loader是一个测试数据集加载器。 创建一个图像对象用于显示图像和标签。 显示前6个图像和对应的标签其中plt.subplot()用于将图像分成2行3列plt.tight_layout()用于自动调整子图之间的间距plt.imshow()用于显示图像plt.title()用于显示标签plt.xticks()和plt.yticks()用于隐藏x轴和y轴的刻度。 2.4.5构建模型和实例化神经网络 class Net(nn.Module):使用sequential构建网络Sequential()函数的功能是将网络的层组合到一起def __init__(self, in_dim, n_hidden_1, n_hidden_2, out_dim):super(Net, self).__init__()self.layer1 nn.Sequential(nn.Linear(in_dim, n_hidden_1),nn.BatchNorm1d(n_hidden_1))self.layer2 nn.Sequential(nn.Linear(n_hidden_1, n_hidden_2),nn.BatchNorm1d(n_hidden_2))self.layer3 nn.Sequential(nn.Linear(n_hidden_2, out_dim))def forward(self, x):x F.relu(self.layer1(x))x F.relu(self.layer2(x))x self.layer3(x)return x#检测是否有可用的GPU有则使用否则使用CPU device torch.device(cuda:0 if torch.cuda.is_available() else cpu) #实例化网络 model Net(28 * 28, 300, 100, 10) model.to(device)# 定义损失函数和优化器 criterion nn.CrossEntropyLoss() optimizer optim.SGD(model.parameters(), lrlr, momentummomentum)2.4.6训练模型 # 开始训练 losses [] acces [] eval_losses [] eval_acces []for epoch in range(num_epoches):train_loss 0train_acc 0model.train()#动态修改参数学习率if epoch%50:optimizer.param_groups[0][lr]*0.1for img, label in train_loader:imgimg.to(device)label label.to(device)img img.view(img.size(0), -1)# 前向传播out model(img)loss criterion(out, label)# 反向传播optimizer.zero_grad()loss.backward()optimizer.step()# 记录误差train_loss loss.item()# 计算分类的准确率_, pred out.max(1)num_correct (pred label).sum().item()acc num_correct / img.shape[0]train_acc acclosses.append(train_loss / len(train_loader))acces.append(train_acc / len(train_loader))# 在测试集上检验效果eval_loss 0eval_acc 0# 将模型改为预测模式model.eval()for img, label in test_loader:imgimg.to(device)label label.to(device)img img.view(img.size(0), -1)out model(img)loss criterion(out, label)# 记录误差eval_loss loss.item()# 记录准确率_, pred out.max(1)num_correct (pred label).sum().item()acc num_correct / img.shape[0]eval_acc acceval_losses.append(eval_loss / len(test_loader))eval_acces.append(eval_acc / len(test_loader))print(epoch: {}, Train Loss: {:.4f}, Train Acc: {:.4f}, Test Loss: {:.4f}, Test Acc: {:.4f}.format(epoch, train_loss / len(train_loader), train_acc / len(train_loader), eval_loss / len(test_loader), eval_acc / len(test_loader))) 2.4.7可视化损失函数 2.4.7.1 train  loss  plt.title(train loss) plt.plot(np.arange(len(losses)), losses) plt.legend([Train Loss], locupper right) 2.4.7.2 test loss # 绘制测试集损失函数 plt.plot(eval_losses, labelTest Loss) plt.title(Test Loss) plt.xlabel(Epoch) plt.ylabel(Loss) plt.legend() plt.show()
http://www.zqtcl.cn/news/563090/

相关文章:

  • 腾讯云 怎样建设网站网站开发 报价
  • 网络科技公司门户网站免费人脉推广官方软件
  • 建和做网站网络营销推广可以理解为
  • 太原市网站建设网站人防工程做资料的网站
  • 怎么做免费推广网站做网站第一部
  • 橙色网站后台模板WordPress的SEO插件安装失败
  • 做网站好还是做微信小程序好外包加工网外放加工活
  • 中国建设银行网站查征信电子商务网站建设及推广
  • 扫描网站漏洞的软件php网站后台验证码不显示
  • 诸城哪里有做网站的做网站的尺寸
  • 网站开发参考书目做网站推广赚钱吗
  • 九度网站建设网站做ppt模板
  • 浙江做公司网站多少钱评论回复网站怎么做
  • 江门网络建站模板虚拟主机价格一般多少钱
  • 网站建设公司云南深圳手机商城网站设计费用
  • 汇泽网站建设网页版快手
  • 手机销售培训网站wordpress案例插件
  • 滨江道做网站公司wordpress 花瓣网
  • 如何建网站快捷方式软件开发做平台
  • 常见的静态网页深圳罗湖企业网站优化
  • 做网站一天赚多少钱外贸网站建设排名
  • 一个大型网站建设得多少钱百度成都总部
  • 网站制作公司汉狮网络手机版网站优化
  • 铜川做网站logo 图标 设计
  • 如何做网站的注册页面南京宣传片公司有哪些
  • 中国建设机械教育协会网站网站建设中html中关于图片显示的标签有哪些
  • 网站过期后dede减肥网站源码
  • 营销型 手机网站网站建设方案后期服务
  • 怎么做一个个人网站建网站的八个步骤
  • 淘宝导购网站模版上海网站推广软件