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

企业网站的建设目的有什么17做网站新塘牛仔城

企业网站的建设目的有什么,17做网站新塘牛仔城,wordpress二维码支付宝,本地网站服务器搭建#x1f497;#x1f497;#x1f497;欢迎来到我的博客#xff0c;你将找到有关如何使用技术解决问题的文章#xff0c;也会找到某个技术的学习路线。无论你是何种职业#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章#xff0c;也欢… 欢迎来到我的博客你将找到有关如何使用技术解决问题的文章也会找到某个技术的学习路线。无论你是何种职业我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章也欢迎在文章下方留下你的评论和反馈。我期待着与你分享知识、互相学习和建立一个积极的社区。谢谢你的光临让我们一起踏上这个知识之旅 文章目录 引言什么是多分类问题处理步骤多分类问题MNIST dataset的实现NLLLoss 和 CrossEntropyLoss 引言 当处理多分类问题时PyTorch是一种非常有用的深度学习框架。在这篇博客中我们将讨论如何使用PyTorch来解决多分类问题。我们将介绍多分类问题的基本概念构建一个简单的多分类神经网络模型并演示如何准备数据、训练模型和评估结果。 什么是多分类问题 多分类问题是一种机器学习任务其中目标是将输入数据分为多个不同的类别或标签。与二分类问题不同多分类问题涉及到三个或更多类别的分类任务。例如图像分类问题可以将图像分为不同的类别如猫、狗、鸟等。 处理步骤 准备数据 收集和准备数据集确保每个样本都有相应的标签以指明其所属类别。 划分数据集为训练集、验证集和测试集以便进行模型训练、调优和性能评估。 数据预处理 对数据进行预处理例如归一化、标准化、缺失值处理或数据增强以确保模型训练的稳定性和性能。 选择模型架构 选择适当的深度学习模型架构通常包括卷积神经网络CNN、循环神经网络RNN、Transformer等具体取决于问题的性质。 定义损失函数 为多分类问题选择适当的损失函数通常是交叉熵损失Cross-Entropy Loss。 选择优化器 选择合适的优化算法如随机梯度下降SGD、Adam、RMSprop等以训练模型并调整权重。 训练模型 使用训练数据集来训练模型。在每个训练迭代中通过前向传播和反向传播来更新模型参数以减小损失函数的值。 评估模型 使用验证集来评估模型性能。常见的性能指标包括准确性、精确度、召回率、F1分数等。 调优模型 根据验证集的性能对模型进行调优可以尝试不同的超参数设置、模型架构变化或数据增强策略。 测试模型 最终在独立的测试数据集上评估模型的性能以获得最终性能评估。 部署模型 将训练好的模型部署到实际应用中用于实时或批处理多分类任务。 多分类问题 之前我们讨论的问题都是二分类居多对于二分类问题我们若求得p(0)南无p(1)1-p(0)还是比较容易的但是本节我们将引入多分类那么我们所求得就转化为p(i)(i1,2,3,4…)同时我们需要满足以上概率中每一个都大于0且总和为1。 处理多分类问题这里我们新引入了一个称为Softmax Layer 接下来我们一起讨论一下Softmax Layer层 首先我们计算指数计算e的zi次幂原因很简单e的指数函数恒大于0分母就是e的z1次幂e的z2次幂e的z3次幂…求和这样所有的概率和就为1了。 下图形象的展示了SoftmaxExponent这里指指数和上面我们说的一样先求指数这样有了分子再将所有指数求和最后一一divide得到了每一个概率。 接下来我们一起来看看损失函数 如果使用numpy进行实现根据刘二大人的代码可以进行如下的实现 import numpy as np y np.array([1,0,0]) z np.array([0.2,0.1,-0.1]) y_pred np.exp(z)/np.exp(z).sum() loss (-y * np.log(y_pred)).sum() print(loss)运行结果如下 注意神经网络的最后一层不需要激活 在pytorch中 import torch y torch.LongTensor([0]) # 长整型 z torch.Tensor([[0.2, 0.1, -0.1]]) criterion torch.nn.CrossEntropyLoss() loss criterion(z, y) print(loss)运行结果如下 下面根据一个例子进行演示 criterion torch.nn.CrossEntropyLoss() Y torch.LongTensor([2,0,1]) Y_pred1 torch.Tensor([[0.1, 0.2, 0.9], [1.1, 0.1, 0.2], [0.2, 2.1, 0.1]]) Y_pred2 torch.Tensor([[0.8, 0.2, 0.3], [0.2, 0.3, 0.5], [0.2, 0.2, 0.5]]) l1 criterion(Y_pred1, Y) l2 criterion(Y_pred2, Y) print(Batch Loss1 , l1.data, \nBatch Loss2, l2.data)运行结果如下 根据上面的代码可以看出第一个损失比第二个损失要小。原因很简单想对于Y_pred1每一个预测的分类与Y是一致的而Y_pred2则相差了一下所以损失自然就大了些 MNIST dataset的实现 首先第一步还是导包 import torch from torchvision import transforms from torchvision import datasets from torch.utils.data import DataLoader import torch.nn.functional as F import torch.optim as optim之后是数据的准备 batch_size 64 # transform可以将其转化为0-1形状的转换从28×28转换为1×28×28 transform transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307, ), (0.3081, )) # 均值mean和标准差std ]) train_dataset datasets.MNIST(root../dataset/mnist/, trainTrue,downloadTrue,transformtransform) train_loader DataLoader(train_dataset,shuffleTrue,batch_sizebatch_size) test_dataset datasets.MNIST(root../dataset/mnist/, trainFalse,downloadTrue,transformtransform) test_loader DataLoader(test_dataset,shuffleFalse,batch_sizebatch_size)接下来我们构建网络 class Net(torch.nn.Module):def __init__(self):super(Net, self).__init__()self.l1 torch.nn.Linear(784, 512) self.l2 torch.nn.Linear(512, 256) self.l3 torch.nn.Linear(256, 128) self.l4 torch.nn.Linear(128, 64) self.l5 torch.nn.Linear(64, 10)def forward(self, x):x x.view(-1, 784)x F.relu(self.l1(x)) x F.relu(self.l2(x)) x F.relu(self.l3(x)) x F.relu(self.l4(x)) return self.l5(x) # 注意最后一层不做激活 model Net()之后定义损失和优化器 criterion torch.nn.CrossEntropyLoss() optimizer optim.SGD(model.parameters(), lr0.01, momentum0.5)接下来就进行训练了 def train(epoch):running_loss 0.0for batch_idx, data in enumerate(train_loader, 0): inputs, target dataoptimizer.zero_grad()# forward backward updateoutputs model(inputs)loss criterion(outputs, target)loss.backward()optimizer.step()running_loss loss.item()if batch_idx % 300 299:print([%d, %5d] loss: %.3f % (epoch 1, batch_idx 1, running_loss / 300)) running_loss 0.0def test():correct 0total 0with torch.no_grad(): # 这里可以防止内嵌代码不会执行梯度for data in test_loader:images, labels dataoutputs model(images)_, predicted torch.max(outputs.data, dim1)total labels.size(0)correct (predicted labels).sum().item()print(Accuracy on test set: %d %% % (100 * correct / total))最后调用执行 if __name__ __main__: for epoch in range(10): train(epoch)test()NLLLoss 和 CrossEntropyLoss NLLLoss 和 CrossEntropyLoss也称为交叉熵损失是深度学习中常用的两种损失函数用于测量模型的输出与真实标签之间的差距通常用于分类任务。它们有一些相似之处但也有一些不同之处。 相同点 用途两者都用于分类任务评估模型的输出和真实标签之间的差异以便进行模型的训练和优化。 数学基础NLLLoss 和 CrossEntropyLoss 本质上都是交叉熵损失的不同变种它们都以信息论的概念为基础衡量两个概率分布之间的相似度。 输入格式它们通常期望模型的输出是一个概率分布表示各个类别的预测概率以及真实的标签。不同点 输入格式NLLLoss 通常期望输入是对数概率log probabilities而 CrossEntropyLoss 通常期望输入是未经对数化的概率。在实际应用中CrossEntropyLoss 通常与softmax操作结合使用将原始模型输出转化为概率分布而NLLLoss可以直接使用对数概率。 对数化NLLLoss 要求将模型输出的概率经过对数化取对数以获得对数概率然后与真实标签的离散概率分布进行比较。CrossEntropyLoss 通常在 softmax 操作之后直接使用未对数化的概率值与真实标签比较。 输出维度NLLLoss 更通用可以用于多种情况包括多类别分类和序列生成等任务因此需要更多的灵活性。CrossEntropyLoss 通常用于多类别分类任务。总之NLLLoss 和 CrossEntropyLoss 都用于分类任务但它们在输入格式和使用上存在一些差异。通常选择哪个损失函数取决于你的模型输出的格式以及任务的性质。如果你的模型输出已经是对数概率形式通常使用NLLLoss否则通常使用CrossEntropyLoss。 挑战与创造都是很痛苦的但是很充实。
http://www.eeditor.cn/news/122943/

相关文章:

  • 个人网站开发要多久游戏打金工作室加盟
  • 网站建设教程网wordpress 标签详解
  • 昆明软件开发公司做门户网站的高德地图在海外能用吗
  • 视频网站代理wordpress删除文章的分类目录
  • 智能搜索引擎济南seo推广效果好
  • 江门网站建设工作建设银行个人网站
  • 网站建设合理的流程wordpress 微信主题
  • 做自媒体网站ui私活20个页面以上多少钱
  • 门户网站开发视频装修公司咨询电话
  • 注册网站多少钱建盏厂家
  • 微信企业网站源码下载基于php技术的网站建设
  • 深圳网站建设知名 乐云践新做外贸一般看什么网站
  • 17网站一起做网店池尾商圈洛阳兼职网站
  • iis7.5网站配置网站301了不知道在哪做的
  • 中山网站优化营销网站建设三站合一微信小程序
  • 网站建设开发的条件徐州模板厂
  • 免费学习资源网站网易免费企业邮箱注册申请
  • 福建百益建设集团有限公司网站python网页编程
  • 个人做的小网站需要备案网页搜索优化seo
  • 北京网站设计济南兴田德润评价进入淘宝网官网首页电脑版
  • 北京网站维护公司做买衣服的网站
  • 建设o2o网站可信网站认证logo
  • 做俄语网站广州软件开发培训班
  • 网站秒收录怎么做的wordpress如何拖移小工具
  • 建设网站英文翻译前沿的设计网站
  • 四川公司网站建设ps如何做ppt模板下载网站
  • 湘潭市网站建设商贸公司注册需要多少钱
  • 360网站弹窗推广怎么做的app推广软件
  • 智慧团建网站登录入口手机版怎样创建网站教程
  • 企业网站模板 免费前几年做那些网站致富