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

门户网站asp源码北京影视后期制作公司排名

门户网站asp源码,北京影视后期制作公司排名,网站调用优酷视频去广告,免费咨询医生在线男科文章目录 0 前言1 课题背景2 具体实现3 数据收集和处理3 MobileNetV2网络4 损失函数softmax 交叉熵4.1 softmax函数4.2 交叉熵损失函数 5 优化器SGD6 最后 0 前言 #x1f525; 优质竞赛项目系列#xff0c;今天要分享的是 #x1f6a9; **基于深度学习的植物识别算法 ** … 文章目录 0 前言1 课题背景2 具体实现3 数据收集和处理3 MobileNetV2网络4 损失函数softmax 交叉熵4.1 softmax函数4.2 交叉熵损失函数 5 优化器SGD6 最后 0 前言 优质竞赛项目系列今天要分享的是 **基于深度学习的植物识别算法 ** 该项目较为新颖适合作为竞赛课题方向学长非常推荐 学长这里给一个题目综合评分(每项满分5分) 难度系数3分工作量4分创新点4分 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate 1 课题背景 植物在地球上是一种非常广泛的生命形式直接关系到人类的生活环境目前植物识别主要依靠相关行业从业人员及有经验专家实践经验工作量大、效率低。近年来随着社会科技及经济发展越来越快计算机硬件进一步更新性能也日渐提高数字图像采集设备应用广泛设备存储空间不断增大这样大量植物信息可被数字化。同时基于视频的目标检测在模式识别、机器学习等领域得到快速发展进而基于图像集分类方法研究得到发展。 本项目基于深度学习实现图像植物识别。 2 具体实现 3 数据收集和处理 数据是深度学习的基石 数据的主要来源有: 百度图片, 必应图片, 新浪微博, 百度贴吧, 新浪博客和一些专业的植物网站等 爬虫爬取的图像的质量参差不齐, 标签可能有误, 且存在重复文件, 因此必须清洗。清洗方法包括自动化清洗, 半自动化清洗和手工清洗。 自动化清洗包括: 滤除小尺寸图像.滤除宽高比很大或很小的图像.滤除灰度图像.图像去重: 根据图像感知哈希. 半自动化清洗包括: 图像级别的清洗: 利用预先训练的植物/非植物图像分类器对图像文件进行打分, 非植物图像应该有较低的得分; 利用前一阶段的植物分类器对图像文件 (每个文件都有一个预标类别) 进行预测, 取预标类别的概率值为得分, 不属于原预标类别的图像应该有较低的得分. 可以设置阈值, 滤除很低得分的文件; 另外利用得分对图像文件进行重命名, 并在资源管理器选择按文件名排序, 以便于后续手工清洗掉非植物图像和不是预标类别的图像.类级别的清洗 手工清洗: 人工判断文件夹下图像是否属于文件夹名所标称的物种, 这需要相关的植物学专业知识, 是最耗时且枯燥的环节, 但也凭此认识了不少的植物. 3 MobileNetV2网络 简介 MobileNet网络是Google最近提出的一种小巧而高效的CNN模型其在accuracy和latency之间做了折中。 主要改进点 相对于MobileNetV1MobileNetV2 主要改进点 引入倒残差结构先升维再降维增强梯度的传播显著减少推理期间所需的内存占用Inverted Residuals去掉 Narrow layer(low dimension or depth) 后的 ReLU保留特征多样性增强网络的表达能力Linear Bottlenecks网络为全卷积使得模型可以适应不同尺寸的图像使用 RELU6最高输出为 6激活函数使得模型在低精度计算下具有更强的鲁棒性MobileNetV2 Inverted residual block 如下所示若需要下采样可在 DW 时采用步长为 2 的卷积小网络使用小的扩张系数expansion factor大网络使用大一点的扩张系数expansion factor推荐是5~10论文中 t 6 t 6t6 倒残差结构Inverted residual block ResNet的Bottleneck结构是降维-卷积-升维是两边细中间粗 而MobileNetV2是先升维6倍- 卷积 - 降维是沙漏形。 区别于MobileNetV1, MobileNetV2的卷积结构如下 因为DW卷积不改变通道数所以如果上一层的通道数很低时DW只能在低维空间提取特征效果不好。所以V2版本在DW前面加了一层PW用来升维。 同时V2去除了第二个PW的激活函数改用线性激活因为激活函数在高维空间能够有效地增加非线性但在低维空间时会破坏特征。由于第二个PW主要的功能是降维所以不宜再加ReLU6。 tensorflow相关实现代码 ​ import tensorflow as tfimport numpy as npfrom tensorflow.keras import layers, Sequential, Modelclass ConvBNReLU(layers.Layer):def __init__(self, out_channel, kernel_size3, strides1, **kwargs):super(ConvBNReLU, self).__init__(**kwargs)self.conv layers.Conv2D(filtersout_channel, kernel_sizekernel_size, stridesstrides, paddingSAME, use_biasFalse,nameConv2d)self.bn layers.BatchNormalization(momentum0.9, epsilon1e-5, nameBatchNorm)self.activation layers.ReLU(max_value6.0) # ReLU6def call(self, inputs, trainingFalse, **kargs):x self.conv(inputs)x self.bn(x, trainingtraining)x self.activation(x)return xclass InvertedResidualBlock(layers.Layer):def __init__(self, in_channel, out_channel, strides, expand_ratio, **kwargs):super(InvertedResidualBlock, self).__init__(**kwargs)self.hidden_channel in_channel * expand_ratioself.use_shortcut (strides 1) and (in_channel out_channel)layer_list []# first bottleneck does not need 1*1 convif expand_ratio ! 1:# 1x1 pointwise convlayer_list.append(ConvBNReLU(out_channelself.hidden_channel, kernel_size1, nameexpand))layer_list.extend([# 3x3 depthwise conv layers.DepthwiseConv2D(kernel_size3, paddingSAME, stridesstrides, use_biasFalse, namedepthwise),layers.BatchNormalization(momentum0.9, epsilon1e-5, namedepthwise/BatchNorm),layers.ReLU(max_value6.0),#1x1 pointwise conv(linear) # linear activation y x - no activation functionlayers.Conv2D(filtersout_channel, kernel_size1, strides1, paddingSAME, use_biasFalse, nameproject),layers.BatchNormalization(momentum0.9, epsilon1e-5, nameproject/BatchNorm)])self.main_branch Sequential(layer_list, nameexpanded_conv)def call(self, inputs, **kargs):if self.use_shortcut:return inputs self.main_branch(inputs)else:return self.main_branch(inputs) ​ ​ 4 损失函数softmax 交叉熵 4.1 softmax函数 Softmax函数由下列公式定义 softmax 的作用是把 一个序列变成概率。 softmax用于多分类过程中它将多个神经元的输出映射到0,1区间内所有概率的和将等于1。 python实现 ​ def softmax(x):shift_x x - np.max(x) # 防止输入增大时输出为nanexp_x np.exp(shift_x)return exp_x / np.sum(exp_x)PyTorch封装的Softmax()函数 dim参数 dim为0时对所有数据进行softmax计算 dim为1时对某一个维度的列进行softmax计算 dim为-1 或者2 时对某一个维度的行进行softmax计算 import torch x torch.tensor([2.0,1.0,0.1]) x.cuda() outputs torch.softmax(x,dim0) print(输入,x) print(输出,outputs) print(输出之和,outputs.sum())4.2 交叉熵损失函数 定义如下: python实现 ​ def cross_entropy(a, y):return np.sum(np.nan_to_num(-y*np.log(a)-(1-y)*np.log(1-a)))# tensorflow version loss tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y), reduction_indices[1]))# numpy version loss np.mean(-np.sum(y_*np.log(y), axis1))PyTorch实现 交叉熵函数分为二分类(torch.nn.BCELoss())和多分类函数(torch.nn.CrossEntropyLoss() ​ # 二分类 损失函数loss torch.nn.BCELoss()l loss(predreal)# 多分类损失函数loss torch.nn.CrossEntropyLoss() ​ 5 优化器SGD 简介 SGD全称Stochastic Gradient Descent随机梯度下降1847年提出。每次选择一个mini- batch而不是全部样本使用梯度下降来更新模型参数。它解决了随机小批量样本的问题但仍然有自适应学习率、容易卡在梯度较小点等问题。 pytorch调用方法 ​ torch.optim.SGD(params, lrrequired parameter, momentum0, dampening0, weight_decay0, nesterovFalse)相关代码 ​ def step(self, closureNone):Performs a single optimization step.Arguments:closure (callable, optional): A closure that reevaluates the modeland returns the loss.loss Noneif closure is not None:loss closure()for group in self.param_groups:weight_decay group[weight_decay] # 权重衰减系数momentum group[momentum] # 动量因子0.9或0.8dampening group[dampening] # 梯度抑制因子nesterov group[nesterov] # 是否使用nesterov动量for p in group[params]:if p.grad is None:continued_p p.grad.dataif weight_decay ! 0: # 进行正则化# add_表示原处改变d_p d_p weight_decay*p.datad_p.add_(weight_decay, p.data)if momentum ! 0:param_state self.state[p] # 之前的累计的数据v(t-1)# 进行动量累计计算if momentum_buffer not in param_state:buf param_state[momentum_buffer] torch.clone(d_p).detach()else:# 之前的动量buf param_state[momentum_buffer]# buf buf*momentum 1-dampening*d_pbuf.mul_(momentum).add_(1 - dampening, d_p)if nesterov: # 使用neterov动量# d_p d_p momentum*bufd_p d_p.add(momentum, buf)else:d_p buf# p p - lr*d_pp.data.add_(-group[lr], d_p)return loss​ 6 最后 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate
http://www.pierceye.com/news/358956/

相关文章:

  • 网站建设 会计处理北京垡头网站建设公司
  • 唐山网站制作案例网站建设中标
  • 网站开发培训费济南网络优化推广公司哪家好
  • 谷歌网站优化可以做物理题的网站
  • 公司的网站建设是什么部门品牌餐饮加盟网站建设
  • 深圳品牌网站建设公司哪家好学建网站 必须学那些知识
  • 国内设计网站推荐山东省建设安全生产协会网站
  • 南京专业网站开发团队如何用手机建网站
  • 在婚恋网站上做红娘怎么样正规网络推广服务
  • 网络媒体设计是做什么的西安网站优化公司
  • 有项目去哪里找投资人河南网站优化排名
  • 灯塔建设网站网上做流量对网站有什么影响
  • 网站模板 黑色建设网站安全措施
  • 临沂企业网站建设珠海建设网站的公司哪家好
  • 中国网站建设公司排行榜网站建设精美模板
  • 国家对于学校网站建设深圳网站建设公司网络服务
  • 承德建站公司福田庆三整鼻子好吗
  • 域名和网站关联seo优化是指
  • 爱站网官网关键词周口网站关键词优化
  • vps网站管理器阿里云如何做网站
  • 网站是什么意思例如营销型网站文案怎么做
  • 五莲县网站建设wordpress去掉链接中的吗
  • 贡井区建设局网站建网是什么
  • 高端大气网站模板南京网站制作西安
  • wordpress站点标题和副标题网站内容要突出什么原因
  • 网站建设公司排行杭州wordpress站外链接跳转页面
  • 哪个网站可以做行程攻略哈尔滨市建设工程招标网
  • django网站开发实例望城建设局网站
  • 住房和城乡建设网站方案网页界面设计的网络系统有哪些
  • 自己做的网站怎么设置文件下载商城app搭建