中小型网站建设报价网站系统开发流程

web/2025/10/8 11:17:55/文章来源:
中小型网站建设报价,网站系统开发流程,建网360 网站建设,网站开发 网络后台维护作用文章目录 0 前言1 课题背景2 具体实现3 数据收集和处理3 MobileNetV2网络4 损失函数softmax 交叉熵4.1 softmax函数4.2 交叉熵损失函数 5 优化器SGD6 最后 0 前言 #x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升#xff0c;传统的毕设题目缺少创新和亮点 这两年开始毕业设计和毕业答辩的要求和难度不断提升传统的毕设题目缺少创新和亮点往往达不到毕业答辩的要求这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设学长分享优质毕业设计项目今天要分享的是 **基于深度学习的植物识别算法 ** 学长这里给一个题目综合评分(每项满分5分) 难度系数3分工作量4分创新点4分 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 tf import numpy as np from 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 最后

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查企企官方网站免费在线代理网页

作者推荐 视频算法专题 本文涉及知识点 数学 网格 状态压缩 LeetCode:782 变为棋盘 一个 n x n 的二维网络 board 仅由 0 和 1 组成 。每次移动,你能任意交换两列或是两行的位置。 返回 将这个矩阵变为 “棋盘” 所需的最小移动次数 。如果不存在可行的变换&am…

简易的小企业网站建设政协网站建设要求

空间 样本空间 就是属性的所有可能情况,包括了一切可能出现或不可能出现的所有样本情况 版本空间&假设空间 假设空间就是在样本空间的基础上,给所有属性都加了一个通配符,表示任意即可;以及加上了一个空集,表示…

app与微网站的区别是什么意思电子商务网站建设初学视频教程

在做项目时&#xff0c;随着需求的不断增加&#xff0c;我们的代码文件会越来越大&#xff0c;但是在打包时&#xff0c;在 Node 中通过 JavaScript 使用内存的大小却是有限制的。于是&#xff0c;今天打算部署代码时&#xff0c;报错了: <--- JS stacktrace ---> JS st…

如何注册网站平台重庆网站建设重庆零臻科技行

简介 在网络通信编程中&#xff0c;用的最多的就是UDP和TCP通信了&#xff0c;原理这里就不分析了&#xff0c;网上介绍也很多&#xff0c;这里简单列举一下各自的优缺点和使用场景 通信方式优点缺点适用场景UDP及时性好&#xff0c;快速视网络情况&#xff0c;存在丢包 与嵌入…

上传的网站打不开怎么办如何用网页制作网站

网页中的音视频 <audio> 和 <vedio> 标签属性&#xff1a;autoplay 自动播放 controls 控制播放 loop 循环播放 表单 HTML 表单用于收集用户输入。 标签<form> 标签属性 action 数据的路径 enctype 传输文件 enctype"multipart/form-data" method …

开封网站seo工作中网页开发方案

目录 线程安全和重⼊问题 死锁和活锁 死锁 死锁四个必要条件 活锁 STL,智能指针和线程安全 线程安全的单例模式 饿汉模式 懒汉模式 懒汉模式实现单例模式(线程安全版本) 饿汉模式实现单例模式 我们来学习单例模式与线程安全 线程安全和重⼊问题 线程安全&#xff…

自己电脑上做的网站 怎么让别人看口碑好的五屏网站建设

在硅谷一线大厂所维护的系统服务中&#xff0c;我们经常可以看见SLA这样的承诺。 例如&#xff0c;在谷歌的云计算服务平台Google Cloud Platform中&#xff0c;他们会写着“99.9% Availability”这样的承诺。那什么是“99.9% Availability”呢&#xff1f; 要理解这个承诺是…

西部数码上传网站柳州网站虚拟主机销售价格

介绍 本篇Codelab我们将教会大家如何构建一个简易的OpenHarmony新闻客户端&#xff08;JS版本&#xff09;。应用包含两级页面&#xff0c;分别是主页面和详情页面&#xff0c;两个页面都展示了丰富的UI组件&#xff0c;其中详情页的实现逻辑中还展示了如何通过调用相应接口&a…

广州网站建设电话咨询wordpress最新版本

较为官方的概念&#xff1a; 当且仅当规格说明是存在的并且正确&#xff0c;程序与规格说明之间的 不匹配才是错误。 当需求规格说明书没有提到的功能&#xff0c;判断标准以最终用户为准&#xff1a;当程序没有实现其最终用户合理预期的 功能要求时&#xff0c;就是软…

房地产网站建设策划书北京公司电话大全黄页

低功耗技术 功耗构成静态功耗(漏电功耗)动态功耗翻转功耗(Switch Power)短路功耗(Internal Power) 不同类型的标准单元的功耗 低功耗设计方法降低芯片工作电压多阈值工艺方法电源门控&#xff08;Power Gating&#xff09;多电压域(Multi-Voltage Domain)体偏置门控时钟一个简单…

班级响应式网站html格式游戏开发物语破解版

一.题目要求 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 二.题目难度 简单 三.输入样例 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示…

清远市住房与城乡建设局的网站查网站加背景音乐

已知有三个数据库mysql,mongodb和redis&#xff0c;已经分别存储了不同的学生信息&#xff0c;数据全部采用字符串类型&#xff0c;只有id和name两个字段(在mongo和redis中键为id,值为name)&#xff0c;现需编写代码实现需求&#xff1a;根据指定id获取对应的name和存储该条信息…

网站商城建站app是程序员做出来的吗

1 问题 app,自定义消息通知的时候,在Android8.0手机上收不到通知 2 解决办法 NotificationManager需要创建NotificationChannel,然后调用createNotificationChannel把NotificationChannel传递进去,并且通过setChannelId设置相应的id 3 普通样本代码实现 private static fina…

站长工具综合查询ip情人做网站

在上传文件时&#xff0c;想使用setRequestMethod&#xff08;“GET”&#xff09;。结果无效 因为需要使用输出流上传文件&#xff0c;而使用输出流时&#xff0c;HttpURLConnection默认使用post请求。是无法更改的 conn.setDoOutput(true); //允许输出流 与 conn.setR…

计算机网络 网站开发与设计网站推广的方式

背景 闲鱼目前已经是国内最大的闲置物品交易平台&#xff0c;每天都有数以千万计的用户过来闲鱼&#xff0c;以C2C交易为主。在闲鱼里面&#xff0c;用户的C2C购物频率其实是很低的&#xff0c;而纯粹地逛商品feed流是一件挺无聊的事情。在业务上做加法&#xff0c;突破闲鱼用…

jsp网站开发pdf市场营销与网络营销

Linux的 /etc/hosts 文件用于静态地映射主机名到 IP 地址。 通常用于本地网络中的名称解析&#xff0c;它可以覆盖 DNS 的设置。当你访问一个域名时&#xff0c;系统会首先检查 /etc/hosts 文件&#xff0c;如果找到了匹配项&#xff0c;就会使用该 IP 地址&#xff0c;否则会…

进入城乡建设网站怎么竣工备案网站被攻击

1.Local Binary Pattern( LBP) 算法原理 局部二值模式(Local Binary Pattern, LBP)是一种用于描述图像纹理特征的算法。它通过对图像的每个像素点与其邻域像素进行比较,得到一个二进制编码来表示该像素点的纹理信息。 LBP 算法的基本步骤如下: 选择一个中心像素点,并定…

网站资源做外链邢台网站建设免费做网站排名

SPU(Standard Product Unit) 标准化产品单元 SPU是能够描述一个产品的单元&#xff0c;比如说&#xff0c;iPhone8就是一个SPU&#xff0c;与商家、颜色、款式、套餐无关。 SKU(Stock Keeping Unit) 库存量单元 SKU是用来定价和管理库存的&#xff0c;比如说&#xff0c;iPhon…

吉林省级建设行政主管部门政务网站wordpress设置404

在数字化的时代洪流中&#xff0c;开源与闭源的选择不断成为技术界的重要分水岭。随着特斯拉CEO埃隆马斯克的言论及其决策&#xff0c;公开支持开源&#xff0c;并糅合商业理念与技术革新&#xff0c;使得这场辩论再次成为公众关注的焦点。那么&#xff0c;在这场关乎技术发展脉…

郑州网站关键词优化公司wordpress文章添加标签居中

在本届「开源之夏 2024」活动中&#xff0c;MatrixOne开源社区共计上线3个项目任务&#xff0c;最终有 3位同学成功突围。接下来让我们看看每个项目的详细中选情况&#xff1a; 中选学生公示 项目名称&#xff1a;基于大语言模型的操作系统任务自动识别&#xff0c;拆解&#…