欢迎来到皮皮网网首页

【web教程源码】【狙击副图源码】【直播源码优势分析】源码搭建tengine

来源:源码分享博客 时间:2024-11-25 00:30:42

1.OpenCV中几种卷积的源码实现方式
2.tengine是什么
3.php如何安装?
4.java培训主要学什么?

源码搭建tengine

OpenCV中几种卷积的实现方式

       自从opencv引入dnn模块后,卷积实现方式不断扩展,搭建以适应PC、源码手机、搭建边缘计算设备的源码部署需求。目前,搭建web教程源码可调用CUDA、源码OpenCL、搭建Tengine、源码Vulkan实现卷积。搭建Tengine、源码Vulkan特别适用于移动设备和边缘计算,搭建它们内部是源码如何实现的?

       Vulkan是一个渲染库,与OpenGL、搭建DirectX等GPU渲染库相比,源码移动设备上使用较多,而深度学习模型又需要在移动设备上部署。因此,探索是狙击副图源码否可以使用Vulkan实现卷积等深度学习操作。

       接下来,让我们看看OpenCV是如何使用Vulkan实现深度神经网络中的卷积。

       打开OpenCV源码库的modules/dnn/src目录,可以看到最后一个文件夹是vkcom。"vkcom"这个名字由"Vulkan"库本身与"comp"(glsl语言的源代码后缀)组成。glsl语言可以通过以下命令编译:“vkcom”。GLSL是OpenGL着色语言,用于编写OpenGL着色器的编程语言,通常与并行处理功能强大的GPU结合使用。深度学习操作如卷积、池化都是对图像颜色的处理,因此可以将这些操作实现为着色器,用GLSL编写,然后使用Vulkan调用GPU。

       Vulkan实现的卷积代码示例如下:

       代码中指定了输入输出变量(第3、6、9、行)。直播源码优势分析在第行计算了输出变量convolved_image_data的值。第行开始的for循环遍历卷积核的c、w、h,计算单个像素位置的卷积结果。显然,这个卷积仅计算一个像素位置的卷积结果,卷积核的滑动过程由Vulkan管理GPU,多个GPU计算单元并行完成。

       在OpenCV中,文件conv.comp首先被编译为二进制,然后将此二进制作为字符串放入conv_spv.cpp中。cpp文件定义了conv_spv数组,其中包含编译后的卷积着色器执行代码。由OpBase::createShaderModule函数将此二进制送入vkCreateShaderModule,从而调度GPU。

       通过分析代码,可以看到Vulkan实现的横店离杭州源码算子被调用的方式,这同样适用于CUDA、OpenCL、Ngraph、Inference Engine等实现的算子。

       Vulkan渲染库在OpenCV中的调用逻辑已经阐述完毕。Tengine是如何使用的?在convolution_layer.cpp的forward函数的行,调用了tengine_forward(tengine_graph)。

       Tengine_forward来自teng_run_graph函数,我们只需调用库即可得到结果。传入的graph是卷积图,由create_conv_graph在第行创建。create_conv_graph使用create_conv_node、create_input_node生成卷积算子所需的图。

       使用Tengine相对使用Vulkan、CUDA等库完成算子,要简单许多。调用库内的函数生成节点,使用节点构建图即可,南昌到安徽源码无需自己实现算子内的计算。

       本文概述了OpenCV中卷积实现方式的多样性,以下为总结:

       本文详细分析了使用Vulkan用着色器实现卷积计算的方法及其调用路径,这个路径在分析其他类型实现时也很有用。本文还探讨了不同库算子的兼容性。当然,不同算子兼容还涉及更多细节,本文仅关注卷积forward函数的传递。

       本文后半部分简要介绍了Tengine在OpenCV中的集成。发现集成过程相对简单,在convolution_layer.cpp中直接运行Tengine库构建的卷积计算图。这也表明,如果存在更好的边缘计算库,很容易集成到OpenCV中。

       通过几天的分析,我们已经了解了OpenCL、Vulkan、Tengine的实现方式。可以预计,CUDA、Halide、Inference Engine nn、Inference Engine NGraph等实现也会类似。

tengine是什么

       Tengine是一款高性能的Web服务器软件。

       Tengine是基于Nginx源码开发的,继承了Nginx高性能的特点,同时加入了更多功能和优化,使其更适合现代互联网应用的需求。以下是关于Tengine的详细介绍:

       一、Tengine的基本介绍

       Tengine是由淘宝团队开发并维护的Web服务器软件。它采用了模块化设计,具备高度的可扩展性和稳定性。与传统的Nginx相比,Tengine在功能和性能上都有所提升,特别是在处理高并发、大流量的场景下表现更为出色。

       二、Tengine的主要特点

       1. 高性能:Tengine继承了Nginx的高并发处理能力,能够处理大量的并发请求,保证服务器的稳定性和响应速度。

       2. 功能丰富:除了基本的Web服务器功能外,Tengine还提供了许多高级功能,如动态模块加载、热更新等,满足了更多复杂场景的需求。

       3. 易于扩展:Tengine采用模块化设计,用户可以根据需要灵活地添加或移除功能模块,方便进行扩展和定制。

       4. 安全性高:Tengine对安全性进行了优化和改进,提供了更强的安全防护能力,有效抵御各类网络攻击。

       三、Tengine的应用场景

       Tengine广泛应用于各种互联网场景,如网站、应用服务器、负载均衡等。特别是在处理大量并发请求、要求高性能和高可用性的场景中,Tengine表现出色。

       总之,Tengine是一款高性能的Web服务器软件,具备丰富的功能和高度可扩展性,特别适用于现代互联网应用的需求。由于其出色的性能和稳定性,Tengine受到了广泛的关注和应用。

php如何安装?

       怎么安装PHP环境?

       LAMP/LNMP环境搭建

       一.检查系统环境

       1.确认centos版本

       [root@localhost~]#cat/etc/redhat-release

       2.检查是否安装过apache

       rpm-qa|grepf

       5.卸载Apache包

       rpm-qa|grep(小皮)或者bt.cn(宝塔)安装面板

       如果你的服务器是Linux,建议使用宝塔

       打开终端,不同Linux系统的输入指令不同:

       Centos安装脚本

       终端输入:yuminstall-ywgetwget-Oinstall.shshinstall.sh

       Ubuntu/Deepin安装脚本

       终端输入:wget-Oinstall.shsudobashinstall.sh

       Debian安装脚本

       终端输入:wget-Oinstall.shbashinstall.sh

       Fedora安装脚本

       终端输入wget-Oinstall.shbashinstall.sh

       输入后进行安装就可以了

如何安装PHP模块

       php模块安装的方式

       1、静态安装

       将先将在安装php之前先将需要安装的程序装上,如ftp、mhash、mcrypt……安装完成后,解压php安装包,执行./configure

       --with-ftp

       --with-mhash

       --wth-mcrypt等等。后面具体跟的参数可以参看./configure

       --help查看。编译好后,执行make

       make

       install

       就行了。

       2、动态安装

       而在往往我们进行编译php时经常会忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想再重新装php,于是可以采用phpize来动态加载需要安装的模块。

       具体实现方法如下(这里以忘记安装pdo_mysql模块为例):

       cd

       /root/source/php-5.3./ext/pdo_mysql

       /usr/local/php/bin/phpize

       在安装完mysql后,并不是进入/root/source/mysql-5.5.目录运行phpize,而是进入php的源文件中要增加的扩展模块的文件目录---也就是/root/source/php-5.3./ext/pdo_mysql目录执行phpize。如果不是这样操作的话就会提示下面的错误:

       Cannot

       find

       config.m4.

       Make

       sure

       that

       you

       run

       '/usr/local/php/bin/phpize'

       in

       the

       top

       level

       source

       directory

       of

       the

       module

       关于上面的这个错误,我不得不鄙视下网上有些自以为是的家伙,自认为对所有的安装操作很懂,报上面的错误的时候,去修改源代码,搞的乱七八糟,误人子弟。根本不按php官方的文档操作。

       目录/root/source/php-5.3./ext/pdo_mysql

       ,在运行phpize命令前并没有configure文件,只有config.m4文件。运行phpize就生成了一个可执行的configure文件。此时就可以按照下的方法编译了:

       ./configure

       --with-php-config=/usr/bin/php-config

       (还可以加一些其他的参数,可通过./configure

       --help查看)

       make

       make

       install

       编译完成后会提示扩展模块生成在/usr/local/php/lib/php/extensions/no-debug-non-zts-目录。

       修改php.ini文件

       vi

       /usr/local/php/etc/php.ini

       在其文件结尾加入下面的内容:

       extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-"

       extension=pdo_mysql.so

       安装完成后,重启php-fpm和web服务器。(因为我用的是php-fpm和tengine,如果用的是apache则也重启相应的程序,重新加载就行了)

java培训主要学什么?

       åƒè¿™æ ·çš„问题,我已经回答了很多次,现在很多新手,特别是刚刚入行想学java的同学,不知道该从哪里入手,我是在成都课工场学java入的行,现在已变成老司机,我整理了一些java的知识点,一共分为六个阶段,个技能点,第一阶段、第二阶段、第三阶段、第四阶段是必须要掌握的,很多机构忽悠人,就只学到第四阶段,第五阶段和第六阶段就是高薪、高职的保障,就说说想高薪必须得把后面两个阶段的给掌握了,老铁,觉得合适采纳下啊。

       ç¬¬ä¸€é˜¶æ®µï¼šjava基本功修炼

       1. è®¤è¯†è®¡ç®—机硬件

       2. è®¡ç®—机组成原理

       3. è®¡ç®—机软件知识

       4. è®¡ç®—机网络知识

       5. å¸¸ç”¨ç½‘络应用操作

       6. è®¤è¯†è®¡ç®—机病毒

       7. é€»è¾‘训练

       8. åˆè¯†Java

       9. å˜é‡å’Œæ•°æ®ç±»åž‹

       . é€‰æ‹©ç»“æž„

       . å¾ªçŽ¯ç»“æž„for

       . å¾ªçŽ¯ç»“æž„do-while

       . å¾ªçŽ¯ç»“æž„while

       . å¤šé‡å¾ªçŽ¯åŠç¨‹åºè°ƒè¯•

       . å¾ªçŽ¯è¿›é˜¶

       . ä¸€ç»´æ•°ç»„及经典应用

       . äºŒç»´æ•°ç»„

       . è®¤è¯†ç±»ä¸Žå¯¹è±¡

       . æ–¹æ³•åŠæ–¹æ³•é‡è½½

       . å°è£…与继承

       . æ–¹æ³•é‡å†™ä¸Žå¤šæ€

       . é¡¹ç›®å®žæˆ˜-汽车租赁系统

       . æŠ½è±¡ç±»å’ŒæŽ¥å£

       . å¼‚常

       . é¡¹ç›®å®žæˆ˜-QuickHit

       . Java ä¸­çš„集合类型

       . List é›†åˆ

       . Set é›†åˆ

       . HashMap é›†åˆ

       . Iterator

       . Collections ç®—法类及常用方法

       . enum

       . åŒ…装类及装箱拆箱

       . String、StringBuffer ç±»å¸¸ç”¨æ–¹æ³•æ“ä½œå­—符串

       . Date、Calendar

       . Math ç±»å¸¸ç”¨æ–¹æ³•

       . IO/NIO

       . å­—节输入流(InputStream、FileInputStream、BufferedInputStream)

       . å­—节输出流(OutputStream、FileOutputStream、BufferedOutputStream)

       . å­—符输入流(Reader、InputStreamReader、FileReader BufferedReader)

       . å­—节输出流(Writer、OutputStreamWriter、FileWriter、BufferedWriter)

       . æ–‡ä»¶å¤åˆ¶

       . Serialize、Deserialize

       . èŒåœºæ™‹å‡åŠ›ï¼šå››è±¡é™æ—¶é—´ç®¡ç†ä¸Žç²¾åŠ›ç®¡ç†

       . å¤šçº¿ç¨‹(Thread、Runnable)

       . Thread LifeCycle

       . çº¿ç¨‹çš„调度

       . çº¿ç¨‹çš„同步和死锁

       . Thread Pool

       . èŒåœºæ™‹å‡åŠ›ï¼šå›¢é˜Ÿåˆä½œ

       . Socket(TCP、UDP)

       . XML æ¦‚念、优势、规范

       . XML ä¸­ç‰¹æ®Šå­—符的处理

       . ä½¿ç”¨DOM è¯»å–、添加、删除、解析 XML æ•°æ®

       ç¬¬äºŒé˜¶æ®µï¼šjavaweb开发

       . æ­å»ºå’Œé…ç½®MySQL æ•°æ®åº“

       . æ•°æ®åº“增、删、查、改语句

       . äº‹åŠ¡

       . è§†å›¾

       . æ•°æ®åº“备份与恢复

       . æ•°æ®åº“用户管理

       . æ•°æ®åº“设计

       . é¡¹ç›®å®žæˆ˜-银行ATM å­˜å–款机系统

       . èµ°è¿› HTML å’ŒCSS

       . åˆ—表表格及表单美化

       . CSS 高级操作

       . Bootstrap

       . CSS 组件

       . JavaScript é¢å‘对象

       . JavaScript åˆ¤æ–­ã€å¾ªçŽ¯

       . JavaScript é—­åŒ…

       . JavaScript è¯­æ³•

       . Bootstrap ç»¼åˆæ¡ˆä¾‹

       . HTML5、CSS3

       . jQuery åŸºç¡€

       . jQuery åŸºæœ¬æ“ä½œ

       . jQuery äº‹ä»¶ä¸Žç‰¹æ•ˆ

       . jQuery Ajax

       . jQuery æ’件

       . æ­å»ºWeb 环境初识JSP

       . JSP ä¹å¤§å†…置对象

       . JSP å®žçŽ°æ•°æ®ä¼ é€’和保存

       . JDBC

       . å•ä¾‹æ¨¡å¼ã€å·¥åŽ‚模式

       . MVC、三层模式

       . Commons-fileupload、CKEditor

       . åˆ†é¡µæŸ¥è¯¢

       . EL 与 JSTL

       . Servlet ä¸ŽFilter

       . Listener ä¸ŽMVC

       . Ajax 与 jQuery

       . jQuery çš„Ajax äº¤äº’扩展

       . é¡¹ç›®å®žæˆ˜â€”使用Ajax æŠ€æœ¯æ”¹è¿›æ–°é—»å‘布系统

       . åå°„

       . Linux ç³»ç»Ÿçš„安装

       . åœ¨Linux ä¸­ç®¡ç†ç›®å½•å’Œæ–‡ä»¶

       . åœ¨Linux ä¸­ç®¡ç†ç”¨æˆ·å’Œæƒé™

       . åœ¨Linux æœåŠ¡å™¨çŽ¯å¢ƒä¸‹å®‰è£…软件和部署项目

       . èŒåœºæ™‹å‡åŠ›ï¼šèŒåœºæ²Ÿé€š

       ç¬¬ä¸‰é˜¶æ®µï¼š 企业级框架开发

       . MyBatis 环境搭建

       . SQL 映射文件

       . 动态SQL

       . MyBatis 框架原理

       . Spring IOC

       . æž„造注入、依赖注入、注解

       . Spring 整合MyBatis(SqlSessionTemplate、MapperFactoryBean、事务  

       å¤„理)

       . Spring 数据源(属性文件、JNDI)、Bean 作用域

       . Spring 框架的运行原理

       . SpringMVC 体系概念

       . SpringMVC 之数据绑定、数据效验、

       . SpringMVC 之视图及视图解析

       . SpringMVC 之文件上传、本地化解析

       . SpringMVC 之静态资源处理、请求拦截器、异常处理

       . Oracle æ•°æ®åº“环境搭建、安装

       . Oracle æ•°æ®åº“ SQL、分页、备份、还原

       . Hibernate 概念、依赖

       . HQL æŸ¥è¯¢è¯­è¨€

       . Hibernate 中配置关联映射

       . HQL è¿žæŽ¥æŸ¥è¯¢ä¸Ž Hibernate æ³¨è§£

       . Struts 2 æ¦‚念、依赖

       . Struts 2 é…ç½®

       . OGNL è¡¨è¾¾å¼

       . Struts 2 æ‹¦æˆªå™¨

       . SSH æ¡†æž¶æ•´åˆ

       . ä½¿ç”¨Maven æž„建项目

       . ä½¿ç”¨Struts 2 å®žçŽ°Ajax

       . Jsoup ç½‘络爬虫

       . å¤šçº¿ç¨‹ç½‘络爬虫

       . åçˆ¬åŠååçˆ¬ç­–ç•¥

       . é€šç”¨çˆ¬è™«è®¾è®¡

       . Echart å›¾è¡¨åˆ†æž

       . IKAnalyzer åˆ†è¯

       . ä¼ä¸šæ¡†æž¶é¡¹ç›®å®žæˆ˜-代理商管理系统

       . ä¼ä¸šæ¡†æž¶é¡¹ç›®å®žæˆ˜-SL 会员商城

       . ä¼ä¸šæ¡†æž¶é¡¹ç›®å®žæˆ˜-会员管理系统

       .企业框架项目实战-互联网招聘信息采集分析平台

       ç¬¬å››é˜¶æ®µï¼š 前后端分离开发

       . GitHub

       . Git åŸºç¡€(checkout、pull、commit、push、merge ç­‰)

       . Git è¿›é˜¶(多分支协作)

       . GitLab

       . IDEA çš„使用

       . Maven ä»‹ç»(概念、仓库、构建、命令)

       . ä½¿ç”¨Maven æž„建WEB é¡¹ç›®

       . ä½¿ç”¨Maven æž„建多模块项目

       . ä½¿ç”¨Maven æ­å»ºç§æœä»“库

       . Scrum æ¡†æž¶ä»‹ç»(三个角色、三个工件、四个会议)

       . Scrum Team ç»„建团队

       . äº§å“éœ€æ±‚和用户故事

       . æ¯æ—¥ç«‹ä¼š

       . ä½¿ç”¨æ•æ·-Scrum æ–¹å¼å¼€å‘管理实战

       . å‰åŽç«¯åˆ†ç¦»ã€åˆ†å¸ƒå¼é›†ç¾¤æž¶æž„、垂直架构

       . SSM(SpringMVC+Spring+MyBatis)整合实战

       . Git、Maven ç§æœNexus

       . ç¬¬ä¸‰æ–¹æŽ¥å…¥æŠ€æœ¯ï¼ˆå¾®ä¿¡ã€é˜¿é‡Œï¼‰

       . MySQL ç”µå•†å®žæˆ˜

       . Redis(缓存服务)

       . æœç´¢å¼•æ“Ž-Solr

       . é›†æˆAPI Doc å·¥å…·-Swagger

       . å›¾ç‰‡è‡ªåŠ¨åŒ–处理:Tengine+LUA+GraphicsMagic

       . æ‰‹æœºã€é‚®ç®±æ³¨å†Œ

       . å•ç‚¹ç™»å½• Token

       . OAuth2.0 è®¤è¯

       . Jsoup ç½‘络爬虫(多线程爬虫/代理 IP çˆ¬è™«)

       . ExecutorService çº¿ç¨‹æ± 

       . IK ä¸­æ–‡åˆ†è¯

       . Postman

       . ReactJS

       . webpack

       . èŒåœºæ™‹å‡åŠ›ï¼šç®€åŽ†æ’°å†™

       . ç¨‹åºçŒ¿é¢è¯•å®å…¸ä¹‹é¡¹ç›®é¢è¯•

       .大型互联网旅游电商项目实战-爱旅行

       ç¬¬äº”阶段: 分布式微服架构开发

       . Spring Boot çŽ¯å¢ƒæ­å»º

       . Spring Boot å¸¸ç”¨æŠ€èƒ½

       . Spring Boot æ•´åˆRedis

       . Spring Boot æ•´åˆMybatis

       . å¾®æœåŠ¡æž¶æž„及架构设计

       . æ¶ˆæ¯é˜Ÿåˆ—

       ActiveMQ\RabbitMQ

       . åˆ†å¸ƒå¼äº‹åŠ¡

       . åˆ†å¸ƒå¼é” Redis-setnx

       . Zookeeper æ³¨å†Œä¸­å¿ƒ

       . åŸºäºŽ ActiveMQ å®žçŽ°é«˜å¹¶å‘

       . Docker çŽ¯å¢ƒæ­å»º

       . Docker é•œåƒåŠ é€Ÿ

       . Docker å®¹å™¨ç®¡ç†

       . Docker é•œåƒç®¡ç†

       . Docker å®¹å™¨æ–‡ä»¶å¤‡ä»½

       . Dockerfile

       . Docker ç§æœä»“库

       . çœŸå®žäº’联网高并发电商项目实战-双十一抢购

       . å¯è§†åŒ–监控 Portainer

       . Docker Compose 容器编排

       . Docker Compose æ‰©å®¹ã€ç¼©å®¹

       . Docker Swarm é›†ç¾¤ç¼–排

       . Jenkins å®‰è£…、插件配置

       . Jenkins é…ç½®æ™®é€šä»»åŠ¡

       . Jenkins é…ç½®ç®¡é“任务

       . Jenkins è‡ªåŠ¨å‘布服务

       . Spring Cloud Eureka

       . Spring Cloud Feign

       . Spring Cloud Ribbon

       . Spring Cloud Zuul

       . Spring Cloud Config

       . Spring Cloud Hystrix

       . Spring Cloud Sleuth

       . Spring Boot Admin

       .Eureka æ³¨å†ŒåŽŸç†æŽ¢ç§˜

       . Spring Cloud 大坑解读

       . Zipkin

       . Zipkin æ•´åˆRabbitMQ

       . Zipkin æ•´åˆMySQL

       . ELK æ—¥å¿—收集

       .Kafka

       . Elasticsearch æ˜ å°„管理

       . Elasticsearch æŸ¥è¯¢/复合查询

       . Elasticsearch é›†ç¾¤/集群规划

       . Elasticsearch èšåˆ

       . Elasticsearch é›†ç¾¤ç›‘控

       . Elasticsearch æ’件

       (Head/BigDesk)

       . Mycat è¯»å†™åˆ†ç¦»

       . Mycat ä¸€ä¸»å¤šä»Ž

       . Mycat å¤šä¸»å¤šä»Ž

       . Mycat æ•°æ®åˆ†ç‰‡

       . Redis

       . Redis-Redlock

       . Elasticsearch çŽ¯å¢ƒæ­å»º

       . Elasticsearch å®¢æˆ·ç«¯

       . Elasticsearch ç´¢å¼•ç®¡ç†

       . Elasticsearch æ–‡æ¡£ç®¡ç†

       . Mycat é›†ç¾¤

       . Jmeter 并发测试

       . Jmeter 生成测试报告

       . å¾®ä¿¡ç™»å½•

       . å¾®ä¿¡æ”¯ä»˜

       . æ”¯ä»˜å®æ”¯ä»˜

       . ç™¾åº¦åœ°å›¾

       . Sonar æœ¬åœ°æ£€æµ‹

       . Sonar +Jenkins çº¿ä¸Šæ£€æµ‹

       . CI/CD

       . Spring Boot æ”¹é€ çˆ±æ—…行项目实战

       . å¤§åž‹äº’联网票务类电商项目实战-大觅网

       . ES6 æ¦‚念(les、const)

       . ES6 å¯¹è±¡å’Œæ•°ç»„

       . ES6 å‡½æ•°æ‰©å±•

       . VUE çŽ¯å¢ƒæ­å»º

       . VUE.JS æŒ‡ä»¤

       .VUE 交互

       . VUE 实例生命周期

       . VUE 组件

       . VUE é¡¹ç›®çŽ¯å¢ƒé…ç½®åŠå•æ–‡ä»¶ç»„件

       .VUE 路由

       ç¬¬å…­é˜¶æ®µï¼šcc服务

       . Spring Cloud Gateway

       . Consul

       . Nacos

       . Eureka、Consu、lNacos、Zookeeper 对比分析

       . Prometheus + Grafana

       . ES 分布式存储原理

       . NoSQL 数据库解决方案(Redis、MongoDB)

       . OAuth2.0 认证( authorization code 模式)

       . OAuth2.0 认证( implicit 模式)

       . OAuth2.0 认证( resource owner password credentials 模式)

       . OAuth2.0 è®¤è¯( client credentials æ¨¡å¼)

       . NAS/FastDFS åˆ†å¸ƒå¼æ–‡ä»¶å­˜å‚¨

       . Python åŸºç¡€

       . Python çˆ¬è™«

       . 大数据及 Hadoop 概述

       . 分布式文件系统 HDFS 

       . 分布式计算框架MapReduce

       . 分布式列式数据库 HBase

       . Hadoop 综合应用

       . 面试大局观

       . 职业规划  

       . 项目面试

       . 具体业务场景化解决方案

       . 更多技术专题持续增加中

       æˆ‘估计能把你看晕,有不清楚的可以私信我