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

网站建设洽谈方案ui设计是什么系

网站建设洽谈方案,ui设计是什么系,上海公司排名前十,wordpress anzhuo在神经网络中#xff0c;通常采用反向传播算法来计算网络中各个参数的梯度#xff0c;从而进行参数更新。在反向传播过程中#xff0c;所有的参数都会被更新。因此#xff0c;如果想要只更新指定的边#xff0c;需要采用特殊的方法。 一种可能的方法是使用掩码#xff0…在神经网络中通常采用反向传播算法来计算网络中各个参数的梯度从而进行参数更新。在反向传播过程中所有的参数都会被更新。因此如果想要只更新指定的边需要采用特殊的方法。 一种可能的方法是使用掩码masking技术将不需要更新的参数的梯度设置为0。在这种方法中可以通过创建一个掩码张量来指定哪些参数需要更新哪些参数不需要更新。将不需要更新的参数对应的掩码设置为0将需要更新的参数对应的掩码设置为1然后将掩码张量与梯度张量相乘就可以得到只包含需要更新的参数的梯度张量。最后将这个梯度张量用于参数更新即可。 另一种方法是使用稀疏矩阵sparse matrix技术。在这种方法中将网络中的所有参数看作一个大的稀疏矩阵其中只有需要更新的参数对应的元素有非零值。可以使用专门的稀疏矩阵运算库来进行矩阵乘法和梯度计算从而只更新需要更新的参数。 这两种方法都需要在网络的实现上进行一定的改动但可以实现只对指定的边进行参数更新的目的。 以下是一个使用掩码masking技术的例子演示如何只对指定的边进行参数更新 import torch# 创建一个大小为 (2, 2) 的参数张量 weights torch.randn(2, 2, requires_gradTrue)# 创建一个大小与参数张量相同的掩码张量 mask torch.tensor([[1, 0], [1, 1]])# 对参数进行一次前向传播和反向传播 input torch.randn(2) output torch.matmul(weights, input) loss output.sum() loss.backward()# 将不需要更新的参数的梯度张量设置为0 weights.grad * mask# 使用得到的梯度张量更新参数 learning_rate 0.1 weights.data - learning_rate * weights.grad# 打印更新后的参数张量 print(weights) 在这个例子中我们创建了一个大小为 (2, 2) 的参数张量 weights同时创建了一个大小与参数张量相同的掩码张量 mask其中掩码值为0的位置对应的参数不会被更新。在进行一次前向传播和反向传播后我们将不需要更新的参数的梯度张量设置为0然后使用得到的梯度张量更新参数。最后我们打印更新后的参数张量。 注意这个例子只演示了如何使用掩码技术对指定的边进行参数更新实际上掩码技术的应用还需要考虑一些细节例如如何处理掩码对梯度张量的影响如何更新多个参数张量等等。实际应用中需要根据具体情况进行调整。 以下是一个使用稀疏矩阵sparse matrix技术的例子演示如何只对指定的边进行参数更新 import torch# 创建一个大小为 (2, 2) 的稀疏矩阵 indices torch.tensor([[0, 0], [1, 0], [1, 1]]) values torch.randn(3) weights torch.sparse_coo_tensor(indices.t(), values, (2, 2), requires_gradTrue)# 对参数进行一次前向传播和反向传播 input torch.randn(2) output torch.sparse.mm(weights, input) loss output.sum() loss.backward()# 使用得到的梯度张量更新参数 learning_rate 0.1 weights.data - learning_rate * weights.grad.to_dense()# 打印更新后的参数张量 print(weights.to_dense()) import torch# 定义网络参数和稀疏矩阵 W1 torch.randn(2, 2, requires_gradTrue) W2 torch.randn(1, 2, requires_gradTrue) indices torch.tensor([[0, 0], [1, 1], [1, 0]]) values torch.randn(3) mask torch.sparse_coo_tensor(indices.t(), values, (2, 2), requires_gradTrue)# 定义输入和目标输出 X torch.tensor([[0.5, 0.2]]) target_output torch.tensor([[0.7]])# 前向传播 z1 torch.matmul(X, W1.t()) h1 torch.sigmoid(z1) z2 torch.matmul(h1, W2.t()) output torch.sigmoid(z2)# 计算损失函数并进行反向传播 loss torch.nn.functional.binary_cross_entropy(output, target_output) loss.backward()# 对需要更新的参数进行梯度更新 learning_rate 0.1 with torch.no_grad():W1.grad * mask.to_dense()W1 - learning_rate * W1.gradW2 - learning_rate * W2.grad# 打印更新后的 W1 print(W1) 在这个例子中我们定义了一个两层神经网络其中第一层权重参数为 W1第二层权重参数为 W2。我们还创建了一个稀疏矩阵 mask用于指定第一层权重参数中哪些边需要更新。然后我们进行了一次前向传播和反向传播并使用 mask 对需要更新的参数进行梯度更新最后打印更新后的 W1。 需要注意的是在稀疏矩阵的梯度更新中需要将稀疏矩阵转换为稠密矩阵进行更新因为 PyTorch 目前不支持对稀疏矩阵进行原位更新。因此在更新 W1 时我们使用了 mask.to_dense() 将稀疏矩阵转换为稠密矩阵然后再与 W1.grad 相乘。 神经网络对指定的边进行l1正则化 import torch# 定义网络参数和稀疏矩阵 W1 torch.randn(2, 2, requires_gradTrue) W2 torch.randn(1, 2, requires_gradTrue) indices torch.tensor([[0, 0], [1, 1], [1, 0]]) values torch.randn(3) mask torch.sparse_coo_tensor(indices.t(), values, (2, 2), requires_gradFalse)# 定义输入和目标输出 X torch.tensor([[0.5, 0.2]]) target_output torch.tensor([[0.7]])# 定义 L1 正则化系数和学习率 lambda_l1 0.1 learning_rate 0.1# 计算正则化项并添加到损失函数中 reg_loss lambda_l1 * torch.sum(torch.abs(W1 * mask.to_dense())) loss torch.nn.functional.binary_cross_entropy(torch.sigmoid(torch.matmul(torch.sigmoid(torch.matmul(X, W1.t())), W2.t())), target_output) loss reg_loss# 进行反向传播并对需要更新的参数进行梯度更新 loss.backward() with torch.no_grad():W1.grad * mask.to_dense()W1 - learning_rate * (W1.grad lambda_l1 * torch.sign(W1) * mask.to_dense())W2 - learning_rate * W2.grad# 打印更新后的 W1 print(W1) 对神经网络的边即权重进行 L1 正则化的方法通常是在损失函数中添加一个 L1 正则项其目的是鼓励网络学习稀疏权重从而减少过拟合。 对于只对指定的边进行 L1 正则化的问题可以使用稀疏矩阵技术。具体来说可以使用与前面提到的相同的稀疏矩阵 mask其中非零元素表示需要正则化的权重。在计算 L1 正则化项时我们只需将非零元素的绝对值相加即可。最终将这个正则化项添加到损失函数中以鼓励模型学习稀疏的权重。 以下是一个使用稀疏矩阵技术对神经网络的指定边进行 L1 正则化的示例 import torch# 定义网络参数和稀疏矩阵 W1 torch.randn(2, 2, requires_gradTrue) W2 torch.randn(1, 2, requires_gradTrue) indices torch.tensor([[0, 0], [1, 1], [1, 0]]) values torch.randn(3) mask torch.sparse_coo_tensor(indices.t(), values, (2, 2), requires_gradFalse)# 定义输入和目标输出 X torch.tensor([[0.5, 0.2]]) target_output torch.tensor([[0.7]])# 定义 L1 正则化的权重系数 l1_weight 0.01# 前向传播 z1 torch.matmul(X, W1.t()) h1 torch.sigmoid(z1) z2 torch.matmul(h1, W2.t()) output torch.sigmoid(z2)# 计算损失函数 loss torch.nn.functional.binary_cross_entropy(output, target_output) l1_loss l1_weight * torch.sum(torch.abs(mask * W1)) total_loss loss l1_loss# 进行反向传播 total_loss.backward()# 对所有参数进行梯度更新 learning_rate 0.1 with torch.no_grad():W1 - learning_rate * W1.gradW2 - learning_rate * W2.grad# 打印更新后的 W1 print(W1) 在这个例子中我们将稀疏矩阵 mask 中的非零元素与 W1 相乘得到需要正则化的权重矩阵。然后我们计算 L1 正则化项并将其乘以一个权重系数 l1_weight。最后将 L1 正则化项和交叉熵损失项相加得到总的损失函数 total_loss。最终我们对所有参数进行梯度更新而不仅仅是对需要正则化的权重进行更新。
http://www.hkea.cn/news/14257796/

相关文章:

  • 郑州网站建设技术精粹瀑布式网站
  • 做网站外链品牌网站建设费
  • 个人做企业网站制作要多少钱入群修改网站后台
  • 云服务器和网站空间深圳网站开发网站
  • 制作网站结构设计销售类网站开发
  • 北京网站制作很好 乐云践新如何设计公司标志图案
  • 做网站也分内存大小的吗进出口贸易公司取名大全
  • 工装效果图网站网站建设业动态
  • html5 wap网站模板温州网站开发公司
  • 网页制作与网站建设ppt网站超链接怎么做 word
  • 商城网站建设源码阿里巴巴手工活外发加工网
  • 南宁网站建设nnxun河南省实名举报
  • 怎么注册网站 个人重庆建设工程信息网官网app
  • 怎么做情侣网站国外博客写作网站
  • ui自学网站商城小程序定制
  • 移动端网站建设 新闻动态福建省住房和城乡建设厅门户网站
  • 无锡网站制作一般多少钱wordpress 跳转函数
  • 网站运营需要++做哪些工作网站开发 家具销售 文献
  • 网站工程师是做什么的郑州百度推广seo
  • 购物网站创建做模特网站
  • net做公司网站是否适合设置网址
  • 如何制作可以下单的网站农业电商网站建设ppt
  • 招标网站建设方案wordpress有什么局限性
  • 大学生可做的网站主题个人网站设计实验原理
  • 网站链接怎么做标记wordpress每段不同图片
  • 厦门网站建设公司闽icp支持企业网站发布要怎么做
  • 做网站记什么科目wordpress多域名配置文件
  • 网站建设博客作业龙果学院大型网站稳定性建设
  • 手机电影网站怎么做网络营销分析论文
  • 企业网站建设 南通自己设计logo的网站