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

网站营销应该怎么做wordpress+优化速度

网站营销应该怎么做,wordpress+优化速度,哈尔滨建设网站成本,深圳网站开发教程最近需要对深度学习模型进行部署,因此需要对模型进行压缩,博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 前言卷积层剪枝总结 前言 深度学习剪枝(Pruning)是一种用于减少神经网络模型大小、减少计算量和提高推理效率的技术#xff0c;通过去除神经… 最近需要对深度学习模型进行部署,因此需要对模型进行压缩,博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 前言卷积层剪枝总结 前言 深度学习剪枝(Pruning)是一种用于减少神经网络模型大小、减少计算量和提高推理效率的技术通过去除神经网络中的冗余连接(权重)或节点(神经元)从而实现模型的稀疏化。 深度学习剪枝(Pruning)具有以下几个好处1. 模型压缩和存储节省2. 计算资源节省3. 加速推理速度4. 防止过拟合。 “假剪枝”(Fake Pruning)是一种剪枝算法的称呼它在剪枝过程中并不真正删除权重或节点而是通过一些技巧将它们置零或禁用以模拟剪枝的效果不少优秀的论文就采用了假剪枝策略尽管可以在一定程度上提高模型的推理速度但假剪枝算法没有真正减少模型的大小博主将通过讲解一个小案例简洁易懂的说明一种对假剪枝卷积层进行真正的剪枝的的方法。 卷积层剪枝 可以先将最后的完整代码拷贝到自己的py文件中然后按照博主的思路学习如何将置零卷积核进行真实剪枝 初始化卷积层并查看卷积层权重# 示例使用一个具有3个输入通道和5个输出通道的卷积层 conv nn.Conv2d(3, 5, 3) print(原始卷积层权重) print(conv.weight.data) print(conv.weight.size()) print(原始卷积层偏置) print(conv.bias.data) print(conv.bias.size())通过随机函数让部分卷积核权重置为0模拟完成了假剪枝。# remove_zero_kernels方法内的代码 weight conv_layer.weight.data # 卷积核个数 num_kernels weight.size(0) # 随机对部分卷积置0 pruned torch.ones(num_kernels, 1, 1, 1) # 选择随着置0的卷积序号 random_int random.randint(1, num_kernels-1) for i in range(random_int):pruned[i, 0, 0, 0] 0 conv_layer.weight.data weight * pruned weight conv_layer.weight.data bias conv_layer.bias.data保存未被剪枝的卷积核的权重和偏置# 计算每个卷积核的L2范数,目的是为了检查卷积核的所有位置是不是都置0了 norms torch.norm(weight.view(num_kernels, -1), dim1) zero_kernel_indices torch.nonzero(norms0).squeeze() print(zero_kernel_indices) # 移除L2范数为零的卷积核 new_weight torch.stack([weight[i, :, :, :] for i in range(num_kernels) if i not in zero_kernel_indices]) new_bias torch.stack([bias[i] for i in range(num_kernels) if i not in zero_kernel_indices])构建新的卷积层用来替换此前的卷积层完成置零卷积核的真实剪枝# 构建新的卷积层 if zero_kernel_indices.numel() 0:# 输入channelin_channels weight.size(1)# 输出channelout_channels new_weight.size(0)# 卷积核大小kernel_size weight.size(2)# 步长stride conv_layer.stridepadding conv_layer.paddingdilation conv_layer.dilationgroups conv_layer.groupsnew_conv_layer nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding, dilation, groups)new_conv_layer.weight.data new_weightnew_conv_layer.bias.data new_bias else:new_conv_layer conv_layer完整代码 import torch import torch.nn as nn import randomdef remove_zero_kernels(conv_layer):# 卷积核权重weight conv_layer.weight.data# 卷积核个数num_kernels weight.size(0)# 随机对部分卷积置0pruned torch.ones(num_kernels, 1, 1, 1)# 选择随着置0的卷积序号random_int random.randint(1, num_kernels-1)for i in range(random_int):pruned[i, 0, 0, 0] 0conv_layer.weight.data weight * prunedweight conv_layer.weight.databias conv_layer.bias.data# 计算每个卷积核的L2范数目的是为了检查卷积核的所有位置是不是都置0了norms torch.norm(weight.view(num_kernels, -1), dim1)zero_kernel_indices torch.nonzero(norms0).squeeze()print(zero_kernel_indices)# 移除L2范数为零的卷积核new_weight torch.stack([weight[i, :, :, :] for i in range(num_kernels) if i not in zero_kernel_indices])new_bias torch.stack([bias[i] for i in range(num_kernels) if i not in zero_kernel_indices])# 构建新的卷积层if zero_kernel_indices.numel() 0:# 输入channelin_channels weight.size(1)# 输出channelout_channels new_weight.size(0)# 卷积核大小kernel_size weight.size(2)# 步长stride conv_layer.stridepadding conv_layer.paddingdilation conv_layer.dilationgroups conv_layer.groupsnew_conv_layer nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding, dilation, groups)new_conv_layer.weight.data new_weightnew_conv_layer.bias.data new_biaselse:new_conv_layer conv_layerreturn new_conv_layer# 示例使用一个具有3个输入通道和5个输出通道的卷积层 conv nn.Conv2d(3, 5, 3) # print(原始卷积层权重) # print(conv.weight.data) # print(conv.weight.size()) # print(原始卷积层偏置) # print(conv.bias.data) # print(conv.bias.size())# 将置零的卷积核移除 new_conv remove_zero_kernels(conv) # print(原始卷积层权重) # print(new_conv.weight.data) # print(new_conv.weight.size()) # print(原始卷积层偏置) # print(new_conv.bias.data) # print(new_conv.bias.size())总结 博主的思路就是用卷积层中保留的(未被剪枝)权重初始化一个新的卷积层这样就将假剪枝的置零卷积核真实的除去有没有研究这方面的读者可以给博主分享其他的方法共同进步。
http://www.hkea.cn/news/14344398/

相关文章:

  • 模板wordpress演示站怎么做网站变app
  • html5 中文网站模板青岛微网站开发
  • 用商标域名注册的非盈利网站土木工程网官网
  • 鲜花商城网站设计怎样制作微信网站链接
  • 广州出名的网站自己安装wordpress
  • 东莞网站优化专家服务器安全狗
  • 高端大气企业网站源码dw用ps切片做网站
  • wordpress修改网站名称装修室内设计培训学校
  • 网站建设大小上海高端网站制作
  • 盐城经济技术开发区建设局网站哈尔滨网站开发
  • php 做网站网页制作素材怎么分类
  • 开发网站的费用属于什么费用重庆网站建设红旗河沟
  • wordpress 网站标题图wordpress产品系统
  • 网站域名注册玫瑰花代码编程python
  • 山河集团建设有限公司网站物联网网站开发公司
  • 网站账号注册程序轻量级WordPress
  • 网站加速 wordpress三星网上商城投诉电话
  • 大型网站建设机构哪家好辽阳内蒙古网站建设
  • 一个ip地址上可以做几个网站吗免费网站的资源可以发公众号吗
  • vps网站目录是灰色的门户网站栏目维护建设方案
  • 个人网站模块不用下载就能玩的网页游戏
  • 给别人做网站被诉侵权网站反链如何做
  • 仲恺企业网站建设海口建设网站的公司
  • 茶的网站制作WordPress寻主题
  • 英文网站流量统计在百度做网站推广怎么做
  • 冯站长之家官网wordpress 伪原创
  • 品牌建站一般网站用什么技术做的
  • 做网站运营用什么软件帝国cms做下载网站
  • 南昌公司做网站需要多少钱用阿里云自己建设网站
  • 个人做网站seo网站怎样做移动端适配