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

电子商务网站建设毕业设计江苏个人网站备案

电子商务网站建设毕业设计,江苏个人网站备案,深圳建网站兴田德润团队,网站建设的隐私条款博主秋招遇到的面试问题以及整理其他面经相关问题#xff0c;无偿分享~ 项目叙述#xff1a; 算法需求及应用场景算法的调研和初步方案的制定数据的准备#xff08;包括数据标注和数据增强#xff09;算法的介绍#xff08;包括输入和输出#xff0c;loss、backbone、训…博主秋招遇到的面试问题以及整理其他面经相关问题无偿分享~ 项目叙述 算法需求及应用场景算法的调研和初步方案的制定数据的准备包括数据标注和数据增强算法的介绍包括输入和输出loss、backbone、训练细节等自己对算法增加的模块的介绍为什么要这样改消融实验各种指标的计算算法是否兼顾到参数量和推理速度等 mIOU 一个衡量图像分割精度的重要指标mIOU可解释为平均交并比即在每个类别上计算Iou值真正样本数量 / 真正样本数量假负样本数量假正样本数量 空洞卷积的优缺点 优点在不做下采样的情况下加大感受野 缺点1. 网格效应如果仅仅多次堆叠多个空洞率为2 的 3*3卷积核会发现并不是所有输入像素点都会得到计算也就是卷积核不连续。在逐像素的预测任务中这是致命的。 远距离的信息可能不相关导致空洞卷积对大物体分割有效果对小物体分割可能没好处 如何克服网格效应? 叠加空洞卷积的膨胀率不能有大于1的公约数。这是为了对抗网格效应。246就不行将膨胀率设计成锯齿状结构这是为了满足大小物体的需求。[125125]最后一层的空洞卷积的膨胀率最大且膨胀率小于等于 卷积核大小。主要对抗网格效应。 1x1卷积核作用 通过控制卷积核个数来实现升维和降维对不同特征进行归一化操作跨通道信息交互增加网络的非线性 转置卷积 当填充为0 步幅为1 将输入填充k-1 k 为卷积核大小将卷积核上下左右翻转然后做正常卷积填充0、步幅为1 步幅为s在行列之间插入 s-1行或列 CenterNet的原理与传统的目标检测有什么不同点 CenterNet是anchor-free与yolov3相比速度相同的情况下CenterNet精度比yolov3高好几个点不需要NMS直接检测目标中心点和大小。 算法流程 1 x 3 x 512 x 512 经过backbone特征提取后 得到32倍下采样特征图 1 x 2048 x 16 x 16然后再经过三层转置卷积模块上采样到 128 x 128最后送入三个head分支进行预测预测结果分别为物体类别、长宽尺寸和中心点偏置推理的核心是从heatmap中提取需要的bounding box通过使用3x3的最大池化检查当前热点值是否比周围的8个临近点值都大每个类别取100个点经过box后处理再通过阈值筛选得到最终的预测框。 CSP结构原理和作用 CSP是一种思想与resnet、densenet类似。它将feature map拆分两个部分一部分进行卷积操作、另一个部分与上一部分卷积操作的结果进行cat。解决了三个问题 增强CNN学习能力能够在轻量化的同时保持着准确性降低计算成本降低内存开销。CSPNet改进了密集块和过渡块的信息流优化了梯度反向传播路径提升网络学习能力同时在处理速度和内存方面提升不少。 介绍Faster R-CNN 和 Cascade R-CNN Faster R-CNN是anchor-based和two-stage类型检测器分为四个部分 backbone特征提取然后RPN层通过softmax判断anchors属于positive或者negative再利用边框回归修正anchors获得精确的候选区域RPN生成了大量的候选区域这些候选区域和feature maps一起送入ROI pooling得到候选特征区域最后送入分类和边框回归得到最终的预测结果 Cascade R-CNN 在Faster R-CNN上改进通过级联几个检测网络达到不断优化预测结果的目的与普通级联不同Cascade R-CNN的几个检测网络是基于不同IOU阈值确定的正负样本上训练得到的。简单的来说cascade R-CNN是由一系列检测模型组成每个检测模型都基于不同IOU阈值的正负样本训练得到前一个检测模型的输出作为后一个检测模型的输入因此是stage by stage的训练方式而且越往后的检测模型界定正负样本的IOU阈值是不断上升的。 线性回归为什么要使用mse作为损失函数 在使用线性回归的时候基本假设是噪声服从正态分布当噪声符合正态分布时因变量则符合正态分布因此使用mse的时候实际上是假设y服从正态分布。 优化算法 基本梯度下降法包括SGD等动量优化法包括momentumNAG等自适应学习率优化法包括Adam、AdaGrad、RMSProp等 上采样的原理和常用方式 在CNN中由于输入图片通过CNN提取特征后输出尺寸往往会变小而有时我们需要将图像恢复到原来的尺寸以便进一步计算图像分割小分辨率到大分辨率操作为上采样。 插值一般使用双线性插值效果最好计算复杂但与卷积计算比较计算量不值得一提转置卷积通过对输入feature map间隔填充0 再进行标准卷积计算可以使得输出feature map尺寸比输出更大Max unpooling在对称max pooling位置记录最大值索引值然后将值填回去其余位置补0 参数量和FLOPs计算 参数量 FLOPs CNN中add和concat操作 add和concat分支操作统称为shortcutadd是在ResNet中提出的增加信息的表达。concat操作是Inception首次使用被DenseNet发扬光大保留了一些原始的特征增加特征的数量使得有效信息流继续向后传递。 为什么神经网络常用relu作为激活函数 计算量小、避免梯度消失Relu 可使部分神经元输出为0造成网络稀疏性减少前后层参数对当前层参数的影响提升模型的泛化性能 BN为什么要重构 恢复出原始的某一层所学到的特征因此引入了λ和β让我们网络可以学习恢复出原始网络所要学习的特征分布。比如数据分布不平衡。 BN训练和测试时的区别 训练阶段首先计算均值和方差每次训练给一个批次计算批次的均值和方差然后归一化然后缩放和平移测试阶段每次只输入一张图片无法计算批量均值和方差。在训练的时候实现计算好running_mean、running_var测试的时候直接拿来用就可以不需要计算均值和方差。 Inception V1 - V4的区别、改进 V1googlenet某些大卷积核换成小卷积 V2输入的时候加入BN训练起来收敛更快可以减少dropout的使用 V3GoogleNet里面一些7x7的卷积变成 1x7和7x1两层串联同理3x3。这样加速了计算增加网络的非线性、减少过拟合的概率。 V4原来的inception加上resnet的方法 分类任务中为什么交叉熵损失函数比均方误差损失函数更常用 交叉熵损失函数关于输入权重的梯度表达式不含激活函数梯度而均方误差损失函数中存在激活函数的梯度(预测值接近1或0会导致其梯度接近0)由于常用的sigmoid/tanh存在梯度饱和区使得MSE对权重的梯度很小。 泛化误差过拟合 泛化误差 方差 偏差 噪声 噪声是模型训练的上限也可以说是误差的下限噪声无法避免方差表示不同样本下模型预测的稳定程度方差越大其实就是过拟合预测不稳定偏差表示模型对训练数据的拟合程度偏差大就是欠拟合预测效果不好 降低方差过拟合的方法 数据 增大数据量、进行数据增强进行数据清洗、进行特征选择降低特征维度类别平衡 网络结构 正则化L1、L2、BN dropout 宏观 选择合适复杂度的模型或对现有模型进行剪枝标签平滑earlystopping增大学习率通过交叉验证 降低偏差欠拟合的方法 网络中间 删除或削弱已有的正则化约束 宏观 增加模型复杂度集成学习增加epoch次数 dropout为什么可以减轻过拟合 ensemble效果训练过程中每次随机关闭不同的神经元网络结构已经发生改变整个dropout的训练过程就相等于很多个不同的网络取平均进而达到ensemble效果减少神经元之间复杂的共适应关系dropout导致每两个神经元不一定每一次都在网络中出现减轻了神经元之间的依赖关系。阻止了某些特征仅仅在其他特定特征下才有效果的情况从而迫使网络无法关注特殊情况而只能去学习一些更加鲁棒的特征。 KMeans 算法的具体步骤描述 选取数据空间中的K个对象作为初始中心每个对象代表一个聚类中心遍历所有数据将每个数据划分到最近的中心点计算每个聚类的平均值并作为新的中心点重复2-3直到k个中心点不再变化 优点 原理简单实现容易收敛速度快算法的可解释性强主要调参的参数仅仅是k 缺点 k的选取不好把握初始化的簇中心敏感不同选取方式会得到不同的结果如果数据类型不平衡比如数据量严重失衡或者类别方差不同则聚类效果不佳采用迭代的方法只能得到局部最优解对噪音和异常点比较敏感 Focal loss one-stage算法正负样本严重不均衡two-stage算法利用RPN网络将正负样本控制在13左右 原理 解决正负样本不均衡问题添加权重控制增大少数类样本权重 解决难易样本问题Pt越大说明该样本易区分应当降低容易区分样本的权重。就是说希望增加一个系数概率越大的样本权重系数越小。另外为了提高可控性引入系数λ ​ 综合两个参数α和λ协调来控制 本文作者采用α0.25λ2 效果最好 正则化 原理在损失函数上加上某些规则限制缩小解空间从而减少求出过拟合解的可能性 常用的正则化手段 数据增强使用L范数约束dropoutearly stopping对抗训练 softmax和sigmoid在多分类任务中的优劣 多个sigmoid与一个softmax都可以进行多分类如果多个类别之间是互斥就应该使用softmax即这个东西只可能是几个类别中的一种。如果多个类别之间不是互斥的使用多个sigmoid。 pooling如何反向传播 max pooling下一层的梯度会原封不动地传到上一层最大值所在位置的神经元其他梯度为0 average pooling下一层的梯度会平均地分配到上一层的对应相连区块的所有神经元 pooling作用 增大感受野 2. 平移不变性 3. 降低优化难度 缺点造成梯度稀疏丢失信息 AuCRoCmAPRecallprecisionF1-score Recall RTP/(TPFN) PrecisionPTP/(TPFP) ROC常用于评价二分类的优劣 AUC被定义为ROC曲线下的面积取值范围0.5到1之间 AUC计算公式https://blog.csdn.net/ustbbsy/article/details/107025087 F1-score又称调和平均数precision和recall是相互矛盾的当recall越大时框就越多导致precision就会越小反之亦然。通常使用F1-score来调和precision和recallF1 score结果取决于precision和recall。 pytorch多GPU训练机制的原理 pytorch的多GPU处理apitorch.nn.DataParallel(module, device_ids)其中module是要执行的模型而device_ids则是指定并行GPU id 列表 并行处理机制是首先将模型加载到主GPU上然后再将模型复制到各个指定的从GPU中然后输入数据按照batch维度进行划分每个GPU分配到的数据为batch/gpu个数。每个GPU将针对各自的输入数据独立进行训练最后将各个GPU的loss进行求和再用反向传播更新单个GPU上的模型参数再将更新后的模型参数复制到剩余指定的GPU中这样就完成了一次迭代计算。 偏差和方差 模型误差 方差 偏差不可避免的误差 偏差预测值和真实值之间的差距。偏差越大越偏离真实数据 方差描述的是预测值的变化范围离散程度。方差越大数据分布越分散。 KL散度 KL散度也叫相对熵用于度量两个概率分布之间的差异程度。 KL散度又叫相对熵 KL散度 信息熵 - 交叉熵 不同层次的卷积都提取什么类型的特征 浅层卷积提取 边缘特征中间层卷积提取局部特征深层卷积提取全局特征 BN层面试高频问题 1.BN解决了什么问题 神经网络在做非线性变换前的激活输入值随着网络深度加深其分布逐渐发生偏移內部协变量偏移。之所以训练收敛慢一般是整体分布逐渐往非线性函数的区间两端靠近导致反向传播底层网络训练梯度消失。BN就是通过一定的正则化手段每层神经网络任意神经元输入值的分布强行拉回到均值为0方差为1的标准正态分布。 2. BN公式 其中γ和β分别是缩放因子和偏移量因为减去均值除以方差未必是最好的分布。所以要加入两个可学习变量来完善数据分布以达到比较好的效果。 3. BN层训练和测试的不同 训练阶段BN层对每个batch的训练数据进行标准化即用每一批数据的均值和方差 测试阶段只输入单个测试样本因此这个时候用的均值和方差是整个数据集训练后的均值和方差可以通过滑动平均法求得。简单来说均值就是直接计算所有batch 均值的平均值然后对于标准偏差采用每个batch方差的无偏估计。 4. BN训练时为什么不用整个训练集的均值和方差 因为用整个数据集的均值和方差容易过拟合对于BN其实就是对每一batch数据标准化到一个相同的分布而不同的batch数据均值和方差会有一定的差异这个差异能够增加模型的鲁棒性也会在一定程度上减少过拟合。 6.BN的参数量 γ和β是需要学习的参数在CNN中某一层的batch大小为M那么做BN的参数量为M*2 7. BN的优缺点 优点 可以选择较大的初始学习率因为每一层的分布都固定的不会有底层很难train的现象可以不用dropoutL2正则化BN的使用使得一个mini-batch中的所有样本都被关联在了一起因此网络不会某一个训练样本中生成确定的结果可以把数据集彻底打乱模型更加健壮模型训练起来更快减少了梯度消失降低参数初始化敏感 缺点 BN非常依赖Batch的大小当batch值很小的时候计算的均值和方差不稳定待更新1 NMS流程 先设置两个值一个score的阈值、一个IOU的阈值过滤掉小于score阈值的候选框并根据类别分类概率进行排序A B C D E F先标记最⼤概率矩形框F是我们要保留下来的候选接下来分别判断A~E与F的IOU是否大于IOU阈值假设B、D与F的重叠度超过IOU阈值那么就去除B、D从剩下的A、C、E中选择概率最大的E标记为要保存的候选框然后判断E与A、C的重叠度去除重叠度超过设定阈值的框重复3~5直到没有矩形框剩下。 Soft NMS代码与实现 传统NMS缺点 当前两个目标框接近时分数更低的框就会因为重叠面积过大而被删掉NMS的阈值也不太容易确定设小了就会漏检设置过大容易增大误检 Soft NMS算法优点 可以很方便引入object detection中不需要重新训练原有模型soft nms在训练中采用传统nms可以仅在推断代码中实现soft nms 思路不要直接删除所有IOU大于阈值的框而是降低置信度。 1线性加权 2高斯加权 两种改进的思想都是降低框的置信度从而在第一阶段就被筛选出去。考虑了iou和置信度的关系。 哪些方法可以提升小目标检测效果 提高图像分辨率提高模型的输入分辨率平铺图像数据增强自动学习anchor类别优化 为什么加入残差模块会有效果 假设如果不使用残差模块输出为5.1期望输出为5如果想要学习输出为5这个变化率比较低学习起来是比较困难的。 但是如果设计一个H(X) Fx55.1使得Fx0.1那么学习目标就让0.1变成0这个是比较简单的即引入残差模块后的映射对输出变化更加敏感了。 进一步理解如果Fx 5.1现在继续训练模型使得映射函数5。变化率为5.1-5/5.1 0.02如果不⽤残差模块的话可能要把学习率从0.01设置为0.0000001。层数少还能对付⼀旦层数加深的话可能就不太好使了。 ResNet的缺点 resnet真正起作用的层只在中间深层作用比较小。在深层网络只有恒等映射在学习等价于很多小网络在ensemble MobileNet系列模型的结构和特点 v1网络结构在VGG基础上使用depthwise 卷积空间信息和pointwise 卷积通道信息构成在保证不损失太大精度的同时大幅降低模型参数量。 v2网络结构使用linear bottleneck线性变换来代替原本的非线性激活函数实验证明使用linear bottleneck 可以在小网络中较好地保留有用特征信息。Inverted Residuals 与resnet的通道间操作正好相反。由于v2使用linear bottleneck结构使其提取的特征维度整体偏低relu在低维数据下会出现很多0如果只是使用低维的feature map效果并不好。因此我们需要高维的feature map来进行补充。 v3在整体上有两大创新1.由资源受限的NAS执行模块级搜索由netadapt执行局部搜索对各个模块确定之后网络层的微调。2. 网络结构改进进一步减少网络层数并引入h-swish激活函数。作者发现swish激活函数能有效提高网络的精度然而swish计算量太大了。 VIT模型的结构和特点 **特点**1. VIT直接将标准的transformer结构直接用于图像分类其模型结构中不含CNN。2.为了满足transformer输入结构要求将图片打成patch输入到网络中。在最后的输出端使用了Class Token形式进行分类预测。3. transformer结构vit在大规模数据集上预训练过后再迁移学习可以在特定任务上达到SOTA性能。可以具体分成如下几个部分1图像分块嵌入2多头注意力结构3多层感知机结构4使用droppathclass Token positional encoding EfficientNet系列的结构和特点 EfficientNet是通过网络搜索从深度、宽度和输入图片分辨率三个角度共同调节搜索得来得模型这三个维度并不是相互独立的对于输入图像分辨率更高的情况需要有更深的网络来获得更大的感受视野并且需要有更多的通道来获取更精确的特征。 EfficientNet模型的内部是通过多个MBConv卷积模块实现的实验证明depthwise 卷积在大模型中依旧非常有效的因为depthwise 卷积较于标准卷积有更好的特征提取表达能力。使用了DropConnect方法来代替传统dropout来防止过拟合dropConnect与dropout不同的地方是在训练神经网络模型过程中它不是对隐层节点的输出进行随机丢弃而是对隐层节点的输入进行随机丢弃。 数据类别不平衡怎么处理 数据增强对少数类数据做过采样多数类别数据做欠采样损失函数的权重均衡focal loss采集少数类别的数据阈值调整将原本默认为0.5的阈值调整到较少类别/(较少类别 较多类别) 排序算法 python装饰器 装饰器允许通过将现有函数传递给装饰器从而向现有函数添加一些额外的功能该装饰器将执行现有函数的功能和添加的额外功能。 import logging def use_log(func):def wrapper(*args, **kwargs):logging.warning(%s is running % func.__name__)return func(*args, **kwargs)return wrapper use_log def bar():print(I am bar)------------结果如下------------ WARNING:root:bar is running I am barpython的深拷贝和浅拷贝 在python中用一个变量给另外一个变量赋值其实就是给当前内存中的对象增加一个“引用”而已。 浅拷贝创建一个新对象其内容是原对象中元素的引用新对象与原对象共享内存中的子对象例如切片操作、工厂函数、对象的copy方法copy模块中的copy函数。深拷贝创建一个新对象然后递归的拷贝原对象所包含的子对象。深拷贝出来的对象与原对象没有任何关联copy模块中的deepcopy函数 **注意**浅拷贝和深拷贝的不同仅仅是对组合对象来说所谓的组合对象就是包含其他对象的对象如列表、类实例等。而对于数字、字符串以及其他原子类型没有拷贝一说产生的都是原对象的引用。 python是解释语言还是编译语言 解释语言的优点是可移植性好缺点是运行需要解释环境运行起来比编译语言要慢占用的资源也要多一点代码效率低 编译语言的优点是运行速度快代码效率高编译后程序不可以修改保密性好。缺点是代码需要经过编译才能运行可移植性较差只能在兼容的操作系统上运行。 python的垃圾回收机制 在python中使用引用计数进行垃圾回收同时通过标记-清除算法解决容器对象可能产生的循环引用问题最后通过分代回收算法提高垃圾回收效率 引用计数当有1个变量保存了对象的引用时此对象的引用计数就会加1。当使用del删除变量指向的对象时引用计数减1如果引用计数为0则将当前对象删除。 主要回收垃圾方式引用计数每个对象内部都维护了一个值该值记录对象被引用的次数如果次数为0则python垃圾回收机制会自动清除此对象辅助方式标记-清除算法被分配对象的计数值与被释放对象的计数值之间差异累计超过某个阈值则python的收集机制就启动辅助方式代码中执行gc.collect()命令时python解释器就会进行垃圾回收。 python中range和xrange的区别 首先xrange和range函数的用法完全相同不同的地方是xrange函数生成的不是一个list对象而是一个生成器。要生成很大的数字序列使用xrange会比range的性能优很多因为不需要一上来就开辟很大的内存空间。在python3中xrange函数被移除了只保留了range函数但是range函数的功能结合了xrange和range。之前python2range中是list类型python3中是range类型。
http://www.dnsts.com.cn/news/146737.html

相关文章:

  • 通用网站建设最权威的品牌排行榜网站
  • 响应式地方网站公司网站建设行业怎么样
  • 如何申请网站com域名访问网页
  • 天津网站制作哪个好谷歌优化和谷歌竞价的区别
  • 哪里有html5网站建设工程建设数字化管理平台app下载
  • 网站策划的内容有那些网页ui设计是什么
  • 山东华邦建设集团网站凡科网做音乐网站
  • 自己买服务器搭建网站vps做网站 推广
  • 免费发布网站建设的平台外贸公司电话
  • 上海龙雨建设工程有限公司网站wordpress 提取文章段落
  • 做货源网站可以赚钱吗常州市做网站的公司
  • 专业网站建设制作公司免费宝塔虚拟主机
  • 婚庆公司网站建设方案长沙网络公司最新消息
  • ipv6网站开发宁波网站建设开发服务
  • 网络营销与网站建设高端品牌女装特价网
  • 宁波网站推广报价河南新站关键词排名优化外包
  • 金融直播网站建设网站提示503
  • 西部数据网站管理助手v3.0wordpress wap模板
  • 我是做性视频网站商务酒店网站模板
  • 建设网站审批莱芜在线论坛网
  • html5网站布局教程网站的服务器怎么做的
  • 南宁建站模板展示一键生成app的方法
  • 旅游网站建设的目的电商购物平台
  • 个人做网站猛赚钱wordpress账号是什么
  • 网站集约化淘宝客网站备案信息
  • 网站建设用免费素材手机版静态网页模板
  • wordpress站点使用期限插件wordpress主题git
  • 二级域名网站价格卖网格布怎样做网站
  • wordpress商城 中文站icp备案官网查询
  • 用一个织梦程序做两个网站版面设计图大全简单又漂亮