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

女装品牌排行榜前十名怎样优化网站案例

女装品牌排行榜前十名,怎样优化网站案例,深圳正规制作网站,网页配色设计手册深度学习中的 Dropout 技术在代码层面上的实现通常非常直接。其核心思想是在训练过程中#xff0c;对于网络中的每个神经元#xff08;或者更精确地说#xff0c;是每个神经元的输出#xff09;#xff0c;以一定的概率 p 随机将其输出置为 0。在反向传播时#xff0c;这…深度学习中的 Dropout 技术在代码层面上的实现通常非常直接。其核心思想是在训练过程中对于网络中的每个神经元或者更精确地说是每个神经元的输出以一定的概率 p 随机将其输出置为 0。在反向传播时这些被“drop out”的神经元也不会参与梯度更新。 以下是 Dropout 在代码层面上的一个基本实现逻辑以 Python 和 NumPy 为例进行说明然后再展示在常见的深度学习框架如 TensorFlow 和 PyTorch中的实现方式。 1. NumPy 实现概念演示 假设我们有一个神经网络的某一层输出 activation它是一个形状为 (batch_size, num_neurons) 的 NumPy 数组。我们可以通过以下步骤实现 Dropout Python import numpy as npdef dropout_numpy(activation, keep_prob):使用 NumPy 实现 Dropout。Args:activation: 神经网络层的激活输出 (NumPy array).keep_prob: 保留神经元的概率 (float, 0 到 1 之间).Returns:经过 Dropout 处理的激活输出 (NumPy array).mask: 用于记录哪些神经元被 drop out 的掩码 (NumPy array).if keep_prob 0. or keep_prob 1.:raise ValueError(keep_prob must be between 0 and 1)# 生成一个和 activation 形状相同的随机掩码元素值为 True 或 Falsemask (np.random.rand(*activation.shape) keep_prob)# 将掩码应用于激活输出被 drop out 的神经元输出置为 0output activation * mask# 在训练阶段为了保证下一层的期望输入不变需要对保留下来的神经元输出进行缩放output / keep_probreturn output, mask# 示例 batch_size 64 num_neurons 128 activation np.random.randn(batch_size, num_neurons) keep_prob 0.8dropout_output, dropout_mask dropout_numpy(activation, keep_prob)print(原始激活输出的形状:, activation.shape) print(Dropout 后的激活输出的形状:, dropout_output.shape) print(Dropout 掩码的形状:, dropout_mask.shape) print(被 drop out 的神经元比例:, np.sum(dropout_mask False) / dropout_mask.size)代码解释 keep_prob: 这是保留神经元的概率。Dropout 的概率通常设置为 1 - keep_prob。生成掩码 (mask) 我们使用 np.random.rand() 生成一个和输入 activation 形状相同的随机数数组其元素值在 0 到 1 之间。然后我们将这个数组与 keep_prob 进行比较得到一个布尔类型的掩码。True 表示对应的神经元被保留False 表示被 drop out。应用掩码 (output activation * mask) 我们将掩码和原始的激活输出进行逐元素相乘。由于布尔类型的 True 和 False 在数值运算中会被转换为 1 和 0所以掩码中为 False 的位置对应的激活输出会被置为 0。缩放 (output / keep_prob) 这是一个非常重要的步骤。在训练阶段由于一部分神经元被随机置为 0为了保证下一层神经元接收到的期望输入与没有 Dropout 时大致相同我们需要对保留下来的神经元的输出进行放大。放大的倍数是 1 / keep_prob。 需要注意的是在模型的评估或推理阶段通常不会使用 Dropout。这意味着 keep_prob 会被设置为 1或者 Dropout 层会被禁用。这是因为 Dropout 是一种在训练时使用的正则化技术用于减少过拟合。在评估时我们希望模型的所有神经元都参与计算以获得最准确的预测。 2. TensorFlow 实现 在 TensorFlow 中Dropout 是一个内置的层 Python import tensorflow as tf# 在 Sequential 模型中添加 Dropout 层 model tf.keras.models.Sequential([tf.keras.layers.Dense(128, activationrelu, input_shape(784,)),tf.keras.layers.Dropout(0.2), # Dropout 概率为 0.2 (即 keep_prob 为 0.8)tf.keras.layers.Dense(10, activationsoftmax) ])# 或者在函数式 API 中使用 inputs tf.keras.Input(shape(784,)) x tf.keras.layers.Dense(128, activationrelu)(inputs) x tf.keras.layers.Dropout(0.2)(x) outputs tf.keras.layers.Dense(10, activationsoftmax)(x) model_functional tf.keras.Model(inputsinputs, outputsoutputs)# 训练模型 # model.compile(...) # model.fit(...)在 TensorFlow 的 tf.keras.layers.Dropout(rate) 层中rate 参数指定的是神经元被 drop out 的概率。在训练时这个层会随机将一部分神经元的输出置为 0并对剩下的神经元进行缩放。在推理时这个层不会有任何作用。TensorFlow 内部会自动处理训练和推理阶段的行为。 3. PyTorch 实现 在 PyTorch 中Dropout 也是一个内置的模块 代码段 import torch import torch.nn as nnclass Net(nn.Module):def __init__(self):super(Net, self).__init__()self.fc1 nn.Linear(784, 128)self.relu nn.ReLU()self.dropout nn.Dropout(p0.2) # Dropout 概率为 0.2self.fc2 nn.Linear(128, 10)self.softmax nn.Softmax(dim1)def forward(self, x):x self.fc1(x)x self.relu(x)x self.dropout(x)x self.fc2(x)x self.softmax(x)return xmodel Net()# 设置模型为训练模式 (启用 Dropout) model.train()# 设置模型为评估模式 (禁用 Dropout) model.eval()# 在前向传播中使用 Dropout # output model(input_tensor)在 PyTorch 的 nn.Dropout(p) 模块中p 参数指定的是神经元被 drop out 的概率。与 TensorFlow 类似PyTorch 的 Dropout 在训练模式 (model.train()) 下会启用随机将神经元置零并缩放输出。在评估模式 (model.eval()) 下Dropout 层会失效相当于一个恒等变换。 总结 在代码层面上Dropout 的实现主要涉及以下几个步骤 生成一个随机的二值掩码其形状与神经元的输出相同掩码中每个元素以一定的概率Dropout 概率为 0以另一概率保留概率为 1。将这个掩码与神经元的输出逐元素相乘从而将一部分神经元的输出置为 0。在训练阶段对保留下来的神经元的输出进行缩放通常除以保留概率。在评估阶段禁用 Dropout即不进行掩码操作和缩放。 现代深度学习框架已经将 Dropout 的实现封装在专门的层或模块中用户只需要指定 Dropout 的概率即可框架会自动处理训练和评估阶段的不同行为。这大大简化了在模型中应用 Dropout 的过程。
http://www.pierceye.com/news/33993/

相关文章:

  • 海淀做网站设计的公司ps网页素材
  • 网站开发进度计划是什么施工单位招聘信息
  • 汉化主题做网站效果图代做网页设计作业价格
  • 湖州站内优化seo公司网页代码模板
  • 北京时代 网站建设杭州网页设计招聘网
  • 可口可乐网站建设策划方案全国企业信息系统网官网
  • 郑州网站定制网店的运营模式有哪些
  • 东莞专业建站公司费用项目网加盟
  • 上海城建设计院网站沈阳正规网站建设哪家便宜
  • 如何看一个网站是谁做的网站开发的人员
  • 美工做图素材网站软件界面设计素材
  • 怎么用网站做调查表网站设计合同模板
  • 自己的网站怎么做商城做网站设计用到的软件
  • 广东蕉岭县建设局网站网站logo用什么来做
  • 网站建设客户合同敦煌网网站评价
  • 网络营销的网站分类有免费 开源 企业网站
  • 承德市外贸网站建设宜兴做网站的公司
  • 做app简单还是网站用asp做网站上网帮助
  • 上虞区住房和城乡建设部网站重庆网站建设模板
  • 安徽网站备案要多少时间如何免费做一个网页
  • 怎么解决360导航的网站建设优秀的定制网站建设提供商
  • 旅行网站开发背景网站开发类app
  • 手机网站设计技巧360建站工具
  • 透明房产网关键词优化公司排名榜
  • 企业建站需要多少钱上海企业在线
  • 聚成网络网站建设电子商务专业学什么
  • 怎么在vk网站上做推广昆明工程建设信息网站
  • 网站管理系统哪个最好最好网站开发公司
  • 开发东莞网站制作公司网站制作方案包含哪些内容
  • 北京建设注册中心网站wordpress整合教程