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

YOLOv5网络组件代码(五)

与网络模型组件相关的代码:yolov5-3.1 --> models --> common.py, yolov5-3.1 源码

1.导入包

import numpy as np
import torch
import torch.nn as nnfrom utils.datasets import letterbox
from utils.general import non_max_suppression,make_divisible,scale_coords

2.各个组件代码

  • 池化自动扩充
# 为same卷积或same池化自动扩充
def autopad(k,p=None):   # kernel,padding#Pad to 'same'if p is None:p=k//2 if isinstance(k,int) else [x //2 for x in k] #auto-padreturn p
  • 深度可分离卷积
def DWConv(c1,c2,k=1,s=1,act=true): #k=1 是卷积核kenel,s=1 是步长stride#Depthwise convolutionreturn Conv(c1,c2,k,s,g=math.gcd(c1,c2),act=act)  #math.gcd() 返回最大公约数
  • 卷积组件 conv +BN + hardswish

在这里插入图片描述

class Conv(nn.Module):#Stardard convolution 标准卷积: conv +BN +hardwishdef __init__(self,c1,c2,k=1,s=1,p=None,g=1,act=True):  # ch_in,ch_out,kernel,stride,padding,groupssuper(Conv,self).__init__()self.conv=nn.Conv2d(c1,c2,k,s,autopad(k,p),groups=g,bias=False)self.bn=nn.BatchNorm2d(c2)self.act=nn.Hardswish() if act else nn.Identity()def forward(self,x): # 网络执行顺序是根据 forward函数来决定的return self.act(self.bn(self.conv(x)))def fuseforward(slef,x):return self.act(self.conv(x))
  • Bottleneck
    在这里插入图片描述
class Bottleneck(nn.Module):#Stardard bottleneckdef __init__(self,c1,c2,shortcut=True,g=1,e=0.5):   # ch_in,ch_out,shortcut,groups,expansionsuper(Bottleneck,self).__init__()c_=int(c2*e)   #hidden channelsself.cv1=Conv(c1,c_,1,1)self.cv2=Conv(c_,c2,3,1,g=g)self.add=shortcut and c1==c2def  forward(self,x):return x+ self.cv2(self.cv1(x)) if self.add else  self.cv2(self.cv1(x))
  • BottleneckCSP

在这里插入图片描述

# CSP  Bottleneck https://github.com/WongKinYiu/CrossStagePartialNetworks
class BottleneckCSP(nn.Module):def __init__(self,c1,c2,n=1,shortcut=True,g=1,e=0.5) #ch_in,ch_out,number,shortcut,groups,expansionsuper(BottleneckCSP,self).__init__()c_=int(c2*e)  #hidden channelsself.cv1=Conv(c1,c_,1,1)self.cv2=nn.Conv2d(c1,c_,1,1,bias=False)self.cv3=nn.Conv2d(c_,c_,1,1,bias=False)self.cv4=Conv(2*c_,c2,1,1)self.bn=nn.BatchNorm2d(2*c_)  #applied to cat (cv2,cv3)self.act=nn.LeakyReLU(0.1,inplace=True)# *操作符可以把一个List拆开成一个个独立的元素self.m=nn.Sequential([Bottleneck(c_,c_,shortcut,g,e=1.0) for _ in range(n)])def forward(self,x):0y1=self.cv3(self.m(self.cv1(x))y2=self.cv2(x)return self.cv4(self.act(self.bn(torch.cat((y1,y2),dim=1))))
  • 空间金字塔池化

在这里插入图片描述

class SPP(nn.Module):#Spatial pyramid pooling used in YOLOv3-SPPdef __init__(self,c1,c2,k=(5,9,13)):super(SPP,self).__init__()c_=c1//2  #hidden channels self.cv1=Conv(c1,c_,1,1)self.cv2=Conv(c_*(len(k)+1),c2,1,1)self.m=nn.ModuleList([nn.MaxPool2d(kernel_size=x,stride=1,padding=x//2)for x in k])def forward(self,x):x=self.cv1(x)return  self.cv2(torch.cat([x]+[m(x) for m in self.m],1))		
  • Focus

把宽和高的信息整合的c空间中

在这里插入图片描述
在这里插入图片描述

class Focus(nn.Module):#Focus wh information into c-spacedef __int__(self,c1,c2,k=1,s=1,p=None,g=1,act=True) #ch_in,ch_out,kernel,stride,padding,groupssuper(Focus,self).__init__()self.conv=Conv(c1*4,c2,k,s,p,g,act)def forward(self,x):   #x(b,c,w,h)  - >  y(b,4c,w/2,h/2)return self.conv(torch.cat([x[...,::2,::2],x[...,1:2,::2],x[...,::2,1:2],x[...,1:2,1:2]],1))
  • Concat
class Concat(nn.Module):#Concatenate a list of tensors along dimensiondef __init__(self,dimension=1)super(Concat,self).__init__()self.d=dimensiondef forward(self,x):return torch.cat(x,self.d)
  • NMS非极大值抑制
class NMS(nn.Module):
# NonMaximum Suppression (NMS)moduleconf=0.25 #confidence thresholdiou=0.45  #IoU thresholdclasses=None  #(optional list) filter by classdef __init__(self):super(NMS,self).__init__()def forward(self,x):return non_max_suppression(x[0],conf_thres=self.conf,iou_thres=self.iou,classes=self.classes)
  • 自动调整图像shape
class autoShape(nn.Module):# input-robust model wrapper for passing cv2/np/PIL/torch inputs. Includes preprocessing, inference and NMSimg_size = 640  # inference size (pixels)conf = 0.25  # NMS confidence thresholdiou = 0.45  # NMS IoU thresholdclasses = None  # (optional list) filter by classdef __init__(self, model):super(autoShape, self).__init__()self.model = modeldef forward(self, x, size=640, augment=False, profile=False):# supports inference from various sources. For height=720, width=1280, RGB images example inputs are:#   opencv:     x = cv2.imread('image.jpg')[:,:,::-1]  # HWC BGR to RGB x(720,1280,3)#   PIL:        x = Image.open('image.jpg')  # HWC x(720,1280,3)#   numpy:      x = np.zeros((720,1280,3))  # HWC#   torch:      x = torch.zeros(16,3,720,1280)  # BCHW#   multiple:   x = [Image.open('image1.jpg'), Image.open('image2.jpg'), ...]  # list of imagesp = next(self.model.parameters())  # for device and typeif isinstance(x, torch.Tensor):  # torchreturn self.model(x.to(p.device).type_as(p), augment, profile)  # inference# Pre-processif not isinstance(x, list):x = [x]shape0, shape1 = [], []  # image and inference shapesbatch = range(len(x))  # batch sizefor i in batch:x[i] = np.array(x[i])[:, :, :3]  # up to 3 channels if pngs = x[i].shape[:2]  # HWCshape0.append(s)  # image shapeg = (size / max(s))  # gainshape1.append([y * g for y in s])shape1 = [make_divisible(x, int(self.stride.max())) for x in np.stack(shape1, 0).max(0)]  # inference shapex = [letterbox(x[i], new_shape=shape1, auto=False)[0] for i in batch]  # padx = np.stack(x, 0) if batch[-1] else x[0][None]  # stackx = np.ascontiguousarray(x.transpose((0, 3, 1, 2)))  # BHWC to BCHWx = torch.from_numpy(x).to(p.device).type_as(p) / 255.  # uint8 to fp16/32# Inferencex = self.model(x, augment, profile)  # forwardx = non_max_suppression(x[0], conf_thres=self.conf, iou_thres=self.iou, classes=self.classes)  # NMS# Post-processfor i in batch:if x[i] is not None:x[i][:, :4] = scale_coords(shape1, x[i][:, :4], shape0[i])return x

3. 完整的代码(common.py)

# This file contains modules common to various modelsimport math
import numpy as np
import torch
import torch.nn as nnfrom utils.datasets import letterbox
from utils.general import non_max_suppression, make_divisible, scale_coordsdef autopad(k, p=None):  # kernel, padding# Pad to 'same'if p is None:p = k // 2 if isinstance(k, int) else [x // 2 for x in k]  # auto-padreturn pdef DWConv(c1, c2, k=1, s=1, act=True):# Depthwise convolutionreturn Conv(c1, c2, k, s, g=math.gcd(c1, c2), act=act)class Conv(nn.Module):# Standard convolutiondef __init__(self, c1, c2, k=1, s=1, p=None, g=1, act=True):  # ch_in, ch_out, kernel, stride, padding, groupssuper(Conv, self).__init__()self.conv = nn.Conv2d(c1, c2, k, s, autopad(k, p), groups=g, bias=False)self.bn = nn.BatchNorm2d(c2)self.act = nn.Hardswish() if act else nn.Identity()def forward(self, x):return self.act(self.bn(self.conv(x)))def fuseforward(self, x):return self.act(self.conv(x))class Bottleneck(nn.Module):# Standard bottleneckdef __init__(self, c1, c2, shortcut=True, g=1, e=0.5):  # ch_in, ch_out, shortcut, groups, expansionsuper(Bottleneck, self).__init__()c_ = int(c2 * e)  # hidden channelsself.cv1 = Conv(c1, c_, 1, 1)self.cv2 = Conv(c_, c2, 3, 1, g=g)self.add = shortcut and c1 == c2def forward(self, x):return x + self.cv2(self.cv1(x)) if self.add else self.cv2(self.cv1(x))class BottleneckCSP(nn.Module):# CSP Bottleneck https://github.com/WongKinYiu/CrossStagePartialNetworksdef __init__(self, c1, c2, n=1, shortcut=True, g=1, e=0.5):  # ch_in, ch_out, number, shortcut, groups, expansionsuper(BottleneckCSP, self).__init__()c_ = int(c2 * e)  # hidden channelsself.cv1 = Conv(c1, c_, 1, 1)self.cv2 = nn.Conv2d(c1, c_, 1, 1, bias=False)self.cv3 = nn.Conv2d(c_, c_, 1, 1, bias=False)self.cv4 = Conv(2 * c_, c2, 1, 1)self.bn = nn.BatchNorm2d(2 * c_)  # applied to cat(cv2, cv3)self.act = nn.LeakyReLU(0.1, inplace=True)self.m = nn.Sequential(*[Bottleneck(c_, c_, shortcut, g, e=1.0) for _ in range(n)])def forward(self, x):y1 = self.cv3(self.m(self.cv1(x)))y2 = self.cv2(x)return self.cv4(self.act(self.bn(torch.cat((y1, y2), dim=1))))class SPP(nn.Module):# Spatial pyramid pooling layer used in YOLOv3-SPPdef __init__(self, c1, c2, k=(5, 9, 13)):super(SPP, self).__init__()c_ = c1 // 2  # hidden channelsself.cv1 = Conv(c1, c_, 1, 1)self.cv2 = Conv(c_ * (len(k) + 1), c2, 1, 1)self.m = nn.ModuleList([nn.MaxPool2d(kernel_size=x, stride=1, padding=x // 2) for x in k])def forward(self, x):x = self.cv1(x)return self.cv2(torch.cat([x] + [m(x) for m in self.m], 1))class Focus(nn.Module):# Focus wh information into c-spacedef __init__(self, c1, c2, k=1, s=1, p=None, g=1, act=True):  # ch_in, ch_out, kernel, stride, padding, groupssuper(Focus, self).__init__()self.conv = Conv(c1 * 4, c2, k, s, p, g, act)def forward(self, x):  # x(b,c,w,h) -> y(b,4c,w/2,h/2)return self.conv(torch.cat([x[..., ::2, ::2], x[..., 1::2, ::2], x[..., ::2, 1::2], x[..., 1::2, 1::2]], 1))class Concat(nn.Module):# Concatenate a list of tensors along dimensiondef __init__(self, dimension=1):super(Concat, self).__init__()self.d = dimensiondef forward(self, x):return torch.cat(x, self.d)class NMS(nn.Module):# Non-Maximum Suppression (NMS) moduleconf = 0.25  # confidence thresholdiou = 0.45  # IoU thresholdclasses = None  # (optional list) filter by classdef __init__(self):super(NMS, self).__init__()def forward(self, x):return non_max_suppression(x[0], conf_thres=self.conf, iou_thres=self.iou, classes=self.classes)class autoShape(nn.Module):# input-robust model wrapper for passing cv2/np/PIL/torch inputs. Includes preprocessing, inference and NMSimg_size = 640  # inference size (pixels)conf = 0.25  # NMS confidence thresholdiou = 0.45  # NMS IoU thresholdclasses = None  # (optional list) filter by classdef __init__(self, model):super(autoShape, self).__init__()self.model = modeldef forward(self, x, size=640, augment=False, profile=False):# supports inference from various sources. For height=720, width=1280, RGB images example inputs are:#   opencv:     x = cv2.imread('image.jpg')[:,:,::-1]  # HWC BGR to RGB x(720,1280,3)#   PIL:        x = Image.open('image.jpg')  # HWC x(720,1280,3)#   numpy:      x = np.zeros((720,1280,3))  # HWC#   torch:      x = torch.zeros(16,3,720,1280)  # BCHW#   multiple:   x = [Image.open('image1.jpg'), Image.open('image2.jpg'), ...]  # list of imagesp = next(self.model.parameters())  # for device and typeif isinstance(x, torch.Tensor):  # torchreturn self.model(x.to(p.device).type_as(p), augment, profile)  # inference# Pre-processif not isinstance(x, list):x = [x]shape0, shape1 = [], []  # image and inference shapesbatch = range(len(x))  # batch sizefor i in batch:x[i] = np.array(x[i])[:, :, :3]  # up to 3 channels if pngs = x[i].shape[:2]  # HWCshape0.append(s)  # image shapeg = (size / max(s))  # gainshape1.append([y * g for y in s])shape1 = [make_divisible(x, int(self.stride.max())) for x in np.stack(shape1, 0).max(0)]  # inference shapex = [letterbox(x[i], new_shape=shape1, auto=False)[0] for i in batch]  # padx = np.stack(x, 0) if batch[-1] else x[0][None]  # stackx = np.ascontiguousarray(x.transpose((0, 3, 1, 2)))  # BHWC to BCHWx = torch.from_numpy(x).to(p.device).type_as(p) / 255.  # uint8 to fp16/32# Inferencex = self.model(x, augment, profile)  # forwardx = non_max_suppression(x[0], conf_thres=self.conf, iou_thres=self.iou, classes=self.classes)  # NMS# Post-processfor i in batch:if x[i] is not None:x[i][:, :4] = scale_coords(shape1, x[i][:, :4], shape0[i])return xclass Flatten(nn.Module):# Use after nn.AdaptiveAvgPool2d(1) to remove last 2 dimensions@staticmethoddef forward(x):return x.view(x.size(0), -1)class Classify(nn.Module):# Classification head, i.e. x(b,c1,20,20) to x(b,c2)def __init__(self, c1, c2, k=1, s=1, p=None, g=1):  # ch_in, ch_out, kernel, stride, padding, groupssuper(Classify, self).__init__()self.aap = nn.AdaptiveAvgPool2d(1)  # to x(b,c1,1,1)self.conv = nn.Conv2d(c1, c2, k, s, autopad(k, p), groups=g, bias=False)  # to x(b,c2,1,1)self.flat = Flatten()def forward(self, x):z = torch.cat([self.aap(y) for y in (x if isinstance(x, list) else [x])], 1)  # cat if listreturn self.flat(self.conv(z))  # flatten to x(b,c2)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

《 算法图解 》—— 读书笔记(一)

《 算法图解 》—— 读书笔记(一)1 算法简介2 选择排序这个笔记这么复制粘贴没有什么意义,还是要转化成自己的语言,看着我记过的笔记,一章一章地“复述出来”才有价值,我的输出才重要,无用功一点…...

命令行优化、Pod介绍、label标签、控制器(Deployment、DaemonSet)

文章目录一、优化命令行二、kubernetes带来的变革1.对于开发人员2.对于运维人员3.Pod1>Pod生命周期2>Pod是如何管理多个容器的3>Pod中数据持久性4>Pod的状态5>Pod的资源清单详解6>Pod的重启策略三、名词介绍1.k8s中的名称空间2.namespace3、Label标签3.k8s中…...

elasticsearch7 2021.8.24版本可用 ---head插件总是健康状态未连接

特别要注意跨域和discovery.zen.ping.unicast.hosts 要不然,head插件总是健康状态未连接 1.主节点配置文件 [rootes_master ~]# cat /home/wx/elasticsearch-7.9.0/config/elasticsearch.yml cluster.name: ELK-Cluster node.name: elk-node1 # 开启跨域访问支持&…...

grafana模板大全

原文:https://www.jianshu.com/p/367d52fe1171 前言: 本篇文章分三部分来介绍常用的grafana模板,数据来源均为prometheus。数据来源为zabbix或其他的请绕行! 第一部分 监控容器 推荐ID31468685100008588315 优化315 第二部分 监控物理机…...

Jmeter运行badboy脚本

使用badboy进行录制 这里我使用禅道提bug 导出为Jmeter文件即可 Jmeter运行脚本 使用Jmeter打开jmx文件,添加结果树 点击回放,测试脚本是否正常运行 根据结果树,对脚本进行调试 调试脚本需要自己摸索...

1 Linux简介

1 Linux简介 1.1 环境安装与配置 1.1.1 网址访问 https://cloud.tencent.com/act/double11? https:协议。配置sll证书,才有https协议,否则只有http协议。 cloud.tencent.com:80 域名,即IP地…...

【MyBatis-Plus】第一章 快速入门

第一章 快速入门 文章目录第一章 快速入门一、介绍1.概述2.特性二、入门案例1.安装插件2.准备工作3.MyBatis-Puls 替换 MyBatis4.修改 StudentDao 接口5.修改实体类 Student.java6.修改 StudentServiceImpl.java7.修改 StudentController.java一、介绍 1.概述 MyBatis-Plus 是…...

系统安全性和保密性设计

一、安全性和保密性设计 计算机及信息技术的应用领域在不断扩展,计算机在政府、企业、民生等各个领域中都得到越来越广泛的应用。与此同时,网络攻击和入侵事件与日俱增,重要机构的信息系统遭黑客袭击的事件时有发生。攻击者可以从容地对那些…...

demo随笔

在我们做项目时,有时候总是会引用到其他的资源,这时候就需要使用iframe来进行引用,那引用之后父页面和子页面要咋进行通信呢,今天遇到一个需求是这样子的:在vue里面嵌入了cesium的地球,地球是第三方做的&am…...

Solr搜索引擎

Solr搜索引擎前言一、下载?二、创建核心三、核心配置文件(1)包含对应得数据库 账号,密码,url,对应得sql,(2)查询出的列 对应核心字段上的属性(3)将…...

Qt 中文路径导致构建失败等问题

一、描述 拥有中文路径会导致程序构建失败等一系列问题,那么该如何解决此问题? 二、方案 2.1 由于中文路径导致构建失败 关闭程序,修改当前的路径,将中午替换掉 2.2 无法进入断点 debug模式才能进入断点 之前有中文路径 解决…...

黑马-数据结构

一、数据结构与算法概述 1.1. 什么是数据结构 1.1.1. 数据结构的内容 一般而言,数据结构的选择首先会从抽象数据类型的选择开始。一个设计良好的数据结构,应该在尽可能使用较少的时间与空间资源的前提下,为各种临界状态下的运行提供支持。数…...

MySQL 高级(2): 索引的概念,分类,性能分析

索引优化分析 索引的概念 MySQL 官方对索引的定义为:索引(Index)是帮助MySQL 高效获取数据的数据结构。 可以得到索引的本质:索引是数据结构。可以简单理解为排好序的快速查找数据结构。在数据之外,数据库系统还维护…...

Linux驱动---IO模型

1、什么是IO 在计算机系统中I/O就是输入和输出的意思,只要具有输入输出类型的交互系统都可以认为是I/O系统 也可以说I/O是整个操作系统数据交换与人机交互的通道 针对不同的操作对象, 可以划分为磁盘I/O模型,网络I/O模型,内存映…...

ALV-BCALV_GRID_11

运行效果 运行程序,出现布局(VARIANT)设置界面 - 保存布局:设置alv中允许用户以何种方式保存布局 - 执行:执行程序是否调用保存的布局 - 保存:是否执行函数,永久保存到系统 执行界面可按保存按…...

ssh爆破获取用户密码

通过nmap扫描目标主机发现ssh版本为OpenSSH 5.3&#xff0c;有漏洞 漏洞影响版本&#xff08;OpenSSH < 8.3p1&#xff09; 使用msfconsole 工具 search ssh #查找有关ssh的漏洞 找到并使用漏洞use auxiliary/scanner/ssh/ssh_login show options #查看此漏…...

express框架rmvp的使用

文章目录前言一、RMVP是什么&#xff1f;二、搭建基本服务1.构建服务器server.js基本组成2.router文件2.1、如何实现数据的获取GETPOSTPUTPATCHDELETE2.2 如果想要不区分请求方式,一律接收2.3 做rmvp的抽离,抽离controller三、渲染知识补充前端请求静态资源目录&#xff08;快&…...

在java程序中使用protobuf

文章目录简介为什么使用protobuf定义.proto文件编译协议文件详解生成的文件Builders 和 Messages序列化和反序列化协议扩展总结简介 Protocol Buffer是google出品的一种对象序列化的方式&#xff0c;它的体积小传输快&#xff0c;深得大家的喜爱。protobuf是一种平台无关和语言…...

PMP项目管理 | 项目整合管理

PMP项目管理之项目整合管理项目整合管理定义及概念项目整合管理考虑要素项目整合管理过程包括子过程分解4.1 制定项目章程定义理解作用发生时机参与方输入、工具与技术和输出4.2 制定项目管理计划定义理解作用发生时机参与方项目管理计划和文件输入、工具与技术和输出4.3 指导和…...

看完99%的人都学会了!java多态简单例子_ser

认识HTTP 什么是超文本什么是传输什么是协议 HTTP相关组件 网络模型OSI 模型浏览器Web服务器CDNWAFWebServiceHTMLWeb页面构成 与 HTTP 有关的协议 TCP/IPDNSURI / URLHTTPS 详解 HTTP 报文 HTTP请求方法HTTP请求URLHTTP版本HTTP 请求响应过程HTTP 请求特征 HTTP 标头 通用…...

诚之和:带你详细了解JavaWeb中的Filter过滤器

过滤器Filter作为JavaWeb比较重要的组件之一&#xff0c;同时也是JavaEE的规范&#xff0c;也是一个接口。下面为大家介绍一下JavaWeb中的Filter过滤的具体使用&#xff0c;并体验在JavaWeb项目中Filter过滤器的作用。 一、什么是过滤器 1.Filter过滤器的作用&#xff1a;拦截…...

web开发技巧-网页排版布局常见问题及解决办法

在前端开发过程中比较麻烦的地方其实并不是开发&#xff0c;而是考虑用哪些页面布局样式&#xff0c;一个好的布局排版重点突出&#xff0c;看起来舒适不费劲&#xff0c;整体简洁大方&#xff0c;更重要的是能让用户更好的更方便的浏览网站。今天小千就来给大家介绍几种常见的…...

Linux - 时钟

本文是《Linux内核设计与实现》中“定时器与时间管理”的学习笔记。 节拍率Hz 系统定时器频率是通过静态预处理定义的。我的Ubuntu配置的是250Hz&#xff08;4ms一个周期&#xff09;。 rootjohn-virtual-machine:/boot# grep CONFIG_HZ config-4.15.0-154-generic # CONFIG…...

阿里云边缘云全新架构升级,助力CDN操控新体验

简介&#xff1a; 本次升级根据上万企业客户的使用反馈和行业应用特征&#xff0c;从简单开通到个性化定制&#xff0c;从内容分发到边缘计算完整解决方案&#xff0c;对客户侧的使用体验进行了全局梳理和全链路优化&#xff0c;推进边缘云CDN操控革新&#xff0c;并逐步构建面…...

Django

Django 简介 基本介绍 Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。 使用 Django&#xff0c;只要很少的代码&#xff0c;Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容&#xff0c;并进一步开发出全功能的 Web 服务 Django 本身基…...

关于在vue2.0中使用wangeditor富文本的一些问题

1.先下载相关依赖 npm install wangeditor 2. 引入相关包 import E from "wangeditor"; 3.注册相关内容 name: "picLibraryDetail", 4.相关代码如下&#xff1a; import E from "wangeditor"; export default {name: "picLibraryDetai…...

关于新手指导IntroJS,vue项目(vue3)和react项目(ant-design)的引用

安装插件 npm i introJs 一、vue3项目中引用intro作新手引导 src/utils/util.js文件 import introJs from intro.js/*** name: 新手指导* param {String} pathname 当前页面的path* param {Array} stepsArr 步骤内容&#xff08;包括element、intro&#xff09;* return {*}…...

nuxt中使用svg 开发svg组件

为什么要使用SVG 虽然我们在日常开发的时候&#xff0c;在使用iview 或者element ui等组件时&#xff0c;通常会包含一些常用icon&#xff1b;但是在面对一些特定的需求时&#xff0c;或者自己想high一下&#xff0c;这些通用的icon并不能很好的满足我们。这个时候我们可能会拿…...

A - Til the Cows Come Home POJ - 2387

A - Til the Cows Come Home POJ - 2387 最短路 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> using namespace std; const int maxn 2010; typedef pair<int, int> PII; // first 存距离…...

C#不同状态的按钮 消失or显示

效果展示&#xff1a; 点击前 点击后 //而且 ”备注“ 变成可编辑状态 点击确定后 编辑成功 并变为初始 只有一个的” 编辑 “按钮 并在listView更改成功 列表样式 解决方案&#xff1a; 首先创建三个Button 都放在一个位置上 当然需要有一个按钮重合在编辑上面&#xff08;为…...

网络传输 Tips 小记

burst or pacing&#xff1f; 虽 pacing 相比 burst 更不易导致统计突发&#xff0c;特别是第一跳更容易由于 burst 而 bufferbloat&#xff0c;所以更该 pacing。 但最后一跳正相反。为最大降低接收 overhead&#xff0c;提高聚合效率(如 LRO, Big TCP)&#xff0c;burst 应…...

UNIAPP实战项目笔记9 推荐店铺模块开发和滑块处理

推荐店铺模块开发和滑块处理 实例图片 新建 Shop 组件 在index组件目录下 Shop.vue <template><view class"shop"><view class"shop-item"><view class"shop-big"><image class"shop-big" src"../.…...

UNIAPP实战项目笔记27 商品详情对应数据渲染 EXPRESS 设置跨域访问

UNIAPP实战项目笔记27 商品详情对应数据渲染 EXPRESS 设置跨域访问 //设置跨域访问&#xff08;设置在所有的请求前面即可&#xff09; router.all("*", function (req, res, next) {//设置允许跨域的域名&#xff0c;*代表允许任意域名跨域res.header("Acces…...

js补环境之补指纹

补环境不得关键之处是补canvas2DFP和canvas3DFP以及一些插件&#xff0c;一些特定的浏览器特征值。以下是某验的检测函数的一部分&#xff1a; "$_BGHf": function () {function s(e) {if (e) {if (1 e["nodeType"]) {var t (e["nodeName"] |…...

UNIAPP实战项目笔记8 热销爆品开发和修改商品值给子组件传参数动态改变组件样式

给子组件传参数动态改变组件样式 运动户外: 顶部滑动导航 封装: 否 头图 名称: Banner封装: 是 宫格 名称: Icons封装: 是 热销爆品 名称: Hot封装: 是 热销爆品开发和修改商品值 Hot 组件 Hot.vue <template><view class"hot"><Commodity :dat…...

UNIAPP实战项目笔记14 修复可视区域高度问题 滑动不同板块展示不同数据

修复可视区域高度问题 通过设置小程序和 iso 安卓APP 不同系统做兼容 app端会默认加入刘海屏高度&#xff0c;计算减去此高度即可 // 获取可视区域高度【兼容】getClientHeight(){const res uni.getSystemInfoSync();console.log(res.platform,res.statusBarHeight);const sy…...

day17 - javascript放大镜案例

style样式&#xff1a; <style> *{padding: 0;margin: 0;list-style: none; } .box{width: 400px;height: 500px;margin-left:100px;/* border:3px solid #00f; */ } .m{width: 400px;height: 400px;/* border:1px solid #000; */position: relative; } .small ul li{mar…...

html点击图片局部放大,js实现图片局部放大效果

图片局部放大效果结合的知识点主要是DOM的操作&#xff0c;以及事件的应用&#xff0c;所以首先要对DOM的操作有一定了解&#xff0c;其次能对事件的应用有一定的累积。如上图&#xff0c;可以看到&#xff0c;这是放大镜的基本效果&#xff0c;主要分成左右两个部分。左边分成…...

放大境效果

如何做一个放大境效果呢&#xff1f; 代码如下&#xff1a; <!doctype html> <html> <head> <meta charset"utf-8"> <title>Document</title> </head> <style> *{padding: 0;margin: 0;list-style: none; } .box{…...

单位分解有限元方法(PUFEM)

有限单元法是求解波传播问题的主要数值方法之一。虽然它有很多优点&#xff0c;并成功地模拟了很多波传播问题&#xff0c;但同样存在许多不足之处。 比如说&#xff0c;有些问题上&#xff0c;有限元方法的要达到一定的精度&#xff0c;计算量是很大的。另外&#xff0c;很多…...

Android 增加画框(直接代码)

两个画框链接&#xff1a; https://download.csdn.net/download/hknishi_zs/12447487------------------------------------------------------------------/*** 增加画框页面* 这是dev push 远程仓库&#xff0c;mac准备pull*/ public class AddPictureFrameActivity extends …...

mysql guid 长度_我应该如何在MySQL表中存储GUID?

我是否使用varchar(36)或有更好的方法吗&#xff1f;"thaBadDawg"提供了一个很好的答案。 Stack Overflow上有一个并行线程&#xff0c;讨论该主题。 我在线程中添加了一些评论&#xff0c;回答了更详细的资源链接。 以下是问题链接&#xff1a;stackoverflow.com/qu…...

php 裁切图片 显示

<?php$thumb new Thumb();$thumb->loadImage("http://a0.att.hudong.com/56/12/01300000164151121576126282411.jpg");$thumb->crop("360",150);$a $thumb->show(false,true);echo $a; class Thumb { private $image; private $type; pr...

php0034 rankl,SEKH-0001-Human IL-1 alpha ELISA试剂盒

产品编号英文名称灵敏度检测范围SEKH-0001Human IL-1 alpha2 pg/ml3.9 - 250 pg/mlSEKH-0002Human IL-1 beta2 pg/ml3.9 - 250 pg/mlSEKH-0003Human IL-1F9/ IL-36 gamma9 pg/ml18.8 - 1,200 pg/mlSEKH-0004Human IL-1RA50 pg/ml93.7 - 6,000 pg/mlSEKH-0005Human IL-1 sRI60 p…...

nowcoder 左神算法2

链表与荷兰国旗问题 将单向链表按某值划分成左边小、中间相等、右边大的形式 复制代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61…...

PHP 图片裁切

PHP CLASS TO CREATE IMAGE THUMBANILS Some years ago, I wrote a PHP class to create image thumbnails because I needed it for a project. There were needed certain things that I could not able to find in other PHP classes, and I decided to create one with my...

计算机网络(六):链路层

文章目录1. 概述2. 差错检测和纠正技术3. 多路访问链路和协议3.1 信道划分协议3.2 随机接入协议3.2.1 ALOHA协议3.2.2 CSMA3.3 轮流协议4. 交换局域网4.1 MAC地址4.2 以太网4.2.1 以太网帧结构4.3 链路层交换机4.3.1 交换机转发和过滤4.3.2 链路层交换机的性质5. 无线网络和移动…...

android实体边框代码,Android 给图片加边框(示例代码)

图片处理时&#xff0c;有时需要为图片加一些边框&#xff0c;下面介绍一种为图片添加简单边框的方法。基本思路是&#xff1a;将边框图片裁剪成八张小图片(图片大小最好一致&#xff0c;不然后面处理会很麻烦)&#xff0c;分别对应左上角&#xff0c;左边&#xff0c;左下角&a…...

document.getElementById使用

...

特征值问题的有限元MATLAB程序(一维)

薛定谔特征值问题和拉普拉斯特征值问题的有限元MATLAB程序&#xff08;一维&#xff09; −(p(x)u′(x))′q(x)u(x)λω(x)u(x)in Ω(a,b),u(a)0,u(b)0这是对一般的Sturm-Liouville问题的一个表述。下面主要谈这个问题的两个特例&#xff0c;拉普拉斯特征值问题和薛定谔特征值问…...