tag 标签: 视频

相关帖子
相关博文
  • 热度 2
    2019-7-31 10:55
    3256 次阅读|
    0 个评论
    为了保障居民日常生活、小区治安秩序,小区 监控 的重要性日益凸显。楼与楼之间的通道安装监控摄像机,电梯、电梯口、人行通道都需安装不同类型的监控设备。重点部位实施全方位监控,同时要求系统可靠、稳定、反应速度快,并保存全部过程图像,使保安在第一时间能发现异常情况。   小区监控安装后为,一方面可以起到了保护作用,另一方面还能在减少人员配备。监控与报警设备能起到以下作用:   1、预防作用:视频监控报警系统能对图谋不轨的人形成威胁,使违法犯罪消除在萌芽之中。   2、监督作用:可对往来人员予以记录和监督。   3、取证作用:在事件发生后,通过回放录像,可查看事件发生时的图像记录,为事件的调查解决提供最直接的证据。   4、报警作用:如果安装报警设备,在报警的同时还可启动电话拨号器,通知指定部门。视频监控能实时、形象、真实的反映被监控控制的对象,使有关部门及时获取大量丰富的信息,极大的提高了管理效率和监测的自动化水平,是公共安全防范系统中的重要组成部分。    小结:   老旧小区监控大多“雾里看花”,看得清成了基本需求,我们正大步迈入“监控时代”,作为我们居住的小区在监控设备上却成了“弱项”,老旧小区 安防 设备的更新换代迫在眉睫,同时安防企业也应抓住机遇,迎接市场的变化。
  • 热度 4
    2019-7-29 20:02
    1839 次阅读|
    1 个评论
    光通信培训材料 一、光 纤通信原理 : 〈一〉、光纤通信发展概况 光纤通信是以光波为媒介传输的,光波是一种电磁波,频率是为 10 的 14 次方数量级 HZ 。 电磁波谱:音频 —长波—中波—短波—超短波—微波—毫米波—红外线—可见光—紫外线— X 射线— r 射线。光纤通信使用的波长在近红外区内,波长为 0.8-1.8 之间。其中短波长为 0.84um ,长波长为 1.31um 和 1.55um 。这几种是最常用的,也是在光纤传输中衰减最小的。 〈二〉、光纤通信的优点 : 1、 传输频带宽,通信容量大。比传统通信方式可增加至千倍到万倍的数量级。 2、 损耗低, 1550nm 波长每公里约 0.2db 的损耗,光纤采用的材料为 SIO2 玻璃介质。因为损耗低,长距离传输成为可能。 3、 不受电磁波干扰。 4、 线径细,重量轻,与传统同轴电缆相比。 5、 资源丰富。缺点质地较脆,机械强度低,分割,耦合比较麻烦。 〈三〉、单模光纤和多模光纤 1、 模式,在这里指的是电磁场的一种分布形式,有无穷多种。不同模式有不同的分布。 2、 单模光纤:线径很小,约为 4-10um ,理论上只传输一种模式的光。由于只传输一种主模,避免了模式色散,所以通频带很宽,传输容量大。适用于大容量,长距离的传输。 3、 多模光纤:在一定工作波长下,有多个模式的光波在光纤中传输,这种光纤叫多模光纤。一般纤径较粗。由于容量小,传输距离近,约 2 公里。逐渐被淘汰。 〈四〉、光纤接口标准 1、 接口类型 一般有 SC 、 FC 、 ST 三种接口类型较为常用。其他 LC 或 MT-RJ 不常用。接口衰减不得大于 0.5db 。 2 、光纤的熔接 由于光纤的特殊质地,所以在应用中除光纤专用接头连接外,还需要光纤的断点连接。这就需要借助专业的光纤熔接机。熔点损耗不得大于 0.5db 。熔接这种情况工程应用较少,大多为光纤接口(跳线或法兰盘)。如 FC 、 SC 、 ST 等。 一、 视频通信系统 〈一〉、视频信号各项指标 1、 制式 目前全世界可分为 PAL/NTSC/SECAM 三种制式。 PAL 是我国自行研制出的视频制式, NTSC 是美国研制出来的,主要在欧美一些国家使用。 SECAM 主要是法国使用的一种制式。 2、 信号电平 标准视频电平 1V 峰 - 峰值,阻抗 75 欧姆。 3、 带宽 视频标准带宽 0 — 6.5MHZ 全电视信号。有低频和高频之分,低频部分为图象的黑白。高频部分为图象色彩。低频约为 16KHZ 以下,以上为高频分量。 微分增益 体现在图象上为彩色的鲜艳程度。 4、 微分相位 体现在图象上为彩色的失真度,即红色就是红色,蓝色就是蓝色。如果该项有问题,会表现为该是红的有的偏蓝,该蓝的又有点发红等现象。 5、 信号噪声比 该项越大越好。一般数字视频光端机加权信噪比大于或等于 65db ,可达到广播级标准。 〈二〉、视频通信系统 1 、有线通信和无线通信 有线通信,顾名思义所有通信连接媒介都跟物理线缆有关系。是传统的通信方式。视频有线通信通常有两种方式,一种是同轴电缆传输,一种是双绞线传输。同轴电缆由于线缆粗,布线困难,信号衰减大。通常传几百米图象就失真严重。不适合长距离、大范围视频系统使用。双绞线视频传输是最近几年新兴起来的。它比传统同轴传输有一定的优势,比如抗干扰能力强,布线方便,节省成本等。但也存在传输距离较近的问题。光纤视频通信是最有前途的视频通信方式。 无线通信在视频传输方面有很多的优势,比如电视传输系统,视频微波扩频传输等。有传输距离远,不用布线等优点。但也存在着易受周围电磁环境干扰等缺陷,不过随着技术的更新,无线通信也有着广阔的前景。比如 3G 的到来。 2、 光纤通信 光纤视频通信分为数字光纤传输和模拟光纤传输,是主流的传输方式。目前大多数远距离视频系统都采该方式。 〈三〉、数据、音频通信系统 数据和音频通信系统是在视频通信系统上发展起来的(单指监控系统)。随着视频通信的发展,前端摄象系统需要随时改变方位以及局端与终端进行语音沟通。数据和音频通信成为必要。 视频通信使用的数据为 RS422/485 ,速率 0-115Kbps 可调。工作模式分为两线半双工和四线全双工方式。音频为 10~20KHZ 。 〈四〉、数字光端机和模拟光端机 数字视频光端机可分为非压缩视频光端机和压缩光端机。 非压缩数字图像光端机的原理就是将模拟视频信号进行 A/D 变换后和语音、音频、数据等信号进行复接,再通过光纤高的数据速传输。它用率来保证视频信号的传输质量和实时性,由于光纤的带宽非常大,所以这种高数据速率也并没有对传输通道提出过高要求。非压缩数字图像光端机能提供很好的图像传输质量(信噪比大于 60dB ,微分相位失真小于 2° ,微分增益失真小于 2% ),达到了广播级的传输质量,并且图像传输是全实时的。由于采用数字化技术,在设备中可以利用已经很成熟的通信技术比如复接技术、光收发技术等,提高了设备的可靠性,也降低了成本 . 图像压缩数字光端机一般采用 MPEG II 图像压缩技术,它能将活动图像压缩成 N×2Mbps 的数据流通过标准电信通信接口传输或者直接通过光纤传输。由于采用了图像压缩技术,它能大大降低信号传输带宽,以利于占用较少的资源就能传送图像信号。同时,由于采用了 N×2Mbps 的标准接口,可以利用现有的电信传输设备的富裕通道传输监控图像,为工程应用带来了方便。不过,图像压缩数字光端机也有其固有的缺点。其致命的弱点就是不能保证图像传输的实时性。因为图像压缩与解压缩需要一定的时间,所以一般会对所传输的图像产生 1-2s 的延时。因此,这种设备只适合于用在对实时性要求不高的场所,在经过压缩后图像会产生一定的失真,并且这种光端机的价格也偏高。工程使用上受到一些限制。另外, 模拟光端机采用 了 P F M 调制技术实时传输图像信号。发射端将模拟视频信号先进行 PFM 调制后(一般有调频、调相、调幅几种方式,从而把模拟光端机分成调频、调相、调幅等几种光端机),再进行电 - 光转换,光信号传到接收端后,进行光 - 电转换,然后进行 PFM 解调,恢复出视频信号。由于采用了 PFM 调制技术,其传输距离很容易就能达到 30 Km 左右,有些产品的传输距离可以达到 60 Km ,甚至上百公里。并且,图像信号经过传输后失真很小,具有很高的信和很小的非噪比线性失真。通过使用波分复用技术,还可以在一根光纤上实现图像和数据信号的双向传输。
  • 热度 3
    2019-7-23 21:34
    1691 次阅读|
    0 个评论
    监控设备安装教程
    监控设备安装教程 典型的闭路监控安装系统主要由 前端监控安装设备和后端设备 这两大部分组成,其中视频监控安装后端设备可进一步分为中心控制设备和分控制设备。前、后端设备有多种构成方式,它们之间的联系(也可称作传输系统)可通过电缆、光纤、双胶线或微波等多种方式来实现。 1、 前端采集系统 包括:    摄像机、镜头、云台、解码器、支架、护罩等设备组成。    2、 视频传输系统 :    视频线传输、光纤传输、共缆传输(有线电视射频信号方式)、双绞线传输、无线传输、电力载波传输等。 3、 终端存储系统    DVR、NVR、IPSAN、 硬盘录像系统、车载硬盘录像机、SD存储录像机(移动监控存储)。    4、 终端控制系统    平台 监控软件、视频矩阵、云台控制键盘、画面处理器、切换器、分配器、视频放大器等。    5、 终端显示系统    监视器、显示器、投影仪、拼接屏等。    6、 远程拓展系统    IP 监控,远程监控,网络监控,视频会议等技术。    监控不单纯指闭路电视监控系统,但传统意义上说的监控系统系统由前端摄像机(包括:半球摄像机、红外摄像机、一体机等)加中端设备(光端机、网络视频服务器等)加后端设备主机(硬盘录像机、矩阵等)组成。在监控安装中所使用监控设备均以实际情况配置。
相关资源
  • 所需E币: 0
    时间: 2024-4-26 01:06
    大小: 39KB
    上传者: donglw
    由于传感器、传输路径等因素的影响,使得视频信号混叠噪声信号,由于这些噪声信号的类型相当复杂,目前采用数字滤波方式,这需要大量的DSP芯片。Q值恒定、可同时输出:低通、高通、带通的抗混叠滤波器电路作为信号预处理电路,并结合数字滤波方式,将节省一半的DSP芯片。
  • 所需E币: 0
    时间: 2023-12-1 16:19
    大小: 3.49KB
    实际搭建流程:下载鸿蒙源码→docker拉取镜像→创建容器→进入容器→下载hb编译工具(也可使用build.sh、build.py脚本编译,但是不如hb辅助工具指令好用)→编译(内核、芯片厂商的uboot、系统镜像...)1.准备开发环境:首先,您需要设置用于鸿蒙应用程序开发的开发环境。2.学习鸿蒙应用程序开发:了解鸿蒙应用程序开发的基础知识,包括鸿蒙应用程序的架构、UI设计和鸿蒙系统的特性。3.开发应用程序:使用鸿蒙开发工具,开始编写您的应用程序代码。您可以创建各种类型的应用程序,包括手机应用、平板电脑应用、电视应用、手表应用等。4.设计用户界面:使用鸿蒙的UI组件和工具,设计用户界面。鸿蒙提供了一套UI框架,可以帮助您创建吸引人的用户界面。5.数据处理和功能开发:根据您的应用程序需求,编写数据处理逻辑和应用程序功能。鸿蒙支持多种编程语言,包括Java、C、C++和JS。6.测试和调试:在真机或模拟器上测试您的应用程序,以确保它正常运行。鸿蒙提供了调试工具,以帮助您发现和解决问题。7.发布应用程序:一旦应用程序准备就绪,您可以将其发布到鸿蒙应用程序商店或其他应用程序分发渠道。8.更新和维护:定期更新和维护您的应用程序,以确保它与鸿蒙系统的最新版本兼容,并提供新功能和修复问题。使用store.commit方法来调用:store.commit('事件类型/函数名'),代码片段如下所示:1)在Vue中调用mutations:exportconststore=createStore({   //...   mutations:{   setCount(state,payload){   state.count+=payload   returnstate.count   }   }   //...  })action中可以通过提交**mutation**来修改状态,不直接修改状态action中可以做一些异步操作提供一个上下文,可以直接使用commit、state、getters等,代码片段如下所示:exportconststore=createStore({   //...   actions:{   fetchCount({commit,state,getters},payload){//{commit,state,getters}为上下文   setTimeout(()=>{   commit('setCount',5)   console.log(state.count)   console.log(getters.getCount)   },3000);   }   }  })getter类似与Vue中的computed计算属性,它的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算getters里可以处理一些array、object的查询、过滤、遍历、重构或者做一些字符拼接的操作,方便直接生成一些可以直接使用的数据。如下代码片段展示了如何在getter中进行过滤查询:exportconststore=createStore({   state:{   todos:[  //定义一个对象数组   {   id:1,   done:true   },   {   id:2,   done:false   }   ]   }   getters:{   doneTodosCount(){ //查询已完成的个数   returnstore.state.todos.filter(todo=>todo.done).length //返回值:1   }   }  })首先使用Typescript的interface为store中的所有state声明类型,然后将interface放置在InjectionKeyd的泛型类型中,代码片段如下://src/store/index.tsimport{createStore,Store}from'vuex'import{InjectionKey}from'vue'//为storestate声明类型exportinterfaceAllStateTypes{ count:number, locale:any, userStatus:Number}//定义injectionkeyexportconstkey:InjectionKey<Store<AllStateTypes>>=Symbol('storeKey')exportconststore=createStore<AllStateTypes>({ //...})我们使用Nodejs框架Express来快速搭建一个后端服务,首选需要安装一下Express,在终端运行npminstallexpress--save-dev,Vite官方提供一个基于服务端渲染的NodeServer模板,代码片段如下://server.jsconstfs=require('fs')constpath=require('path')constexpress=require('express')const{createServer:createViteServer}=require('vite')asyncfunctioncreateServer(){ constapp=express() //以中间件模式创建Vite应用,这将禁用Vite自身的HTML服务逻辑 //并让上级服务器接管控制 // //如果你想使用Vite自己的HTML服务逻辑(将Vite作为 //一个开发中间件来使用),那么这里请用'html' constvite=awaitcreateViteServer({  server:{middlewareMode:'ssr'} }) //使用vite的Connect实例作为中间件 app.use(vite.middlewares) app.use('*',async(req,res)=>{  consturl=req.originalUrl  try{   //1.读取index.html   lettemplate=fs.readFileSync(    path.resolve(__dirname,'index.html'),    'utf-8'   )   //2.应用ViteHTML转换。这将会注入ViteHMR客户端,   //  同时也会从Vite插件应用HTML转换。   //  例如:@vitejs/plugin-react-refresh中的globalpreambles   template=awaitvite.transformIndexHtml(url,template)   //3.加载服务器入口。vite.ssrLoadModule将自动转换   //  你的ESM源码使之可以在Node.js中运行!无需打包   //  并提供类似HMR的根据情况随时失效。   const{render}=awaitvite.ssrLoadModule('/src/entry-server.ts')   //4.渲染应用的HTML。这假设entry-server.ts导出的`render`   //  函数调用了适当的SSR框架API。   //  例如ReactDOMServer.renderToString()   constappHtml=awaitrender(url)   //5.注入渲染后的应用程序HTML到模板中。   consthtml=template.replace('<!--ssr-outlet-->',appHtml)   //6.返回渲染后的HTML。   res.status(200).set({'Content-Type':'text/html'}).end(html)  }catch(e){   //如果捕获到了一个错误,让Vite来修复该堆栈,这样它就可以映射回   //你的实际源码中。   vite.ssrFixStacktrace(e)   console.error(e)   res.status(500).end(e.message)  } }) app.listen(3000)}createServer()在终端执行命令:npminstall-Dunplugin-vue-componentsunplugin-auto-import,接着在vite.config.ts中做如下配置://vite.config.tsimportAutoImportfrom'unplugin-auto-import/vite'importComponentsfrom'unplugin-vue-components/vite'import{ElementPlusResolver}from'unplugin-vue-components/resolvers'exportdefault{ plugins:[  //...  AutoImport({   resolvers:[ElementPlusResolver()],  }),  Components({   resolvers:[ElementPlusResolver()],  }), ],}
  • 所需E币: 0
    时间: 2023-11-27 14:02
    大小: 4.52KB
    众所周知,视觉系统对于理解和推理视觉场景的组成特性至关重要。这个领域的挑战在于对象之间的复杂关系、位置、歧义、以及现实环境中的变化等。作为人类,我们可以很轻松地借助各种模态,包括但不仅限于视觉、语言、声音等来理解和感知这个世界。现如今,随着Transformer等关键技术的提出,以往看似独立的各个方向也逐渐紧密地联结到一起,组成了“多模态”的概念。多功能通过引入灵活的提示引擎,包括点、框、涂鸦(scribbles)、掩模、文本和另一幅图像的相关区域,实现多功能性;可组合通过学习联合视觉-语义空间,为视觉和文本提示组合实时查询,实现组合性,如图1所示;可交互通过结合可学习的记忆提示进行交互,实现通过掩模引导的交叉注意力保留对话历史信息;语义感知通过使用文本编码器对文本查询和掩模标签进行编码,实现面向开放词汇分割的语义感知。超大规模视觉通用感知模型由超大规模图像、文本主干网络以及多任务兼容解码网络组成,它基于海量的图像和文本数据构成的大规模数据集进行预训练,用于处理多个不同的图像、图像-文本任务。此外,借助知识迁移技术能够实现业务侧小模型部署。超大规模视觉通用感知模型面临的挑战:(1)网络参数量庞大,通常超十亿参数,训练稳定性、收敛性、过拟合等问题相较于小网络挑战大很多。(2)原始数据集包含数十亿异质低质量图片与海量文本,多步训练以利用异质的多模态多任务数据,流程复杂,存在灾难性遗忘,难以定位精度等问题。(3)实验成本高,通常需要上千块GPU并行训练数周,需要研究者有敏锐的分析能力和扎实的知识基础。(4)工程挑战多,海量数据的吞吐,大型GPU集群上的并行算法,超大参数量模型的内存管理。提示工程大多数视觉数据集由图像和相应文本标签组成,为了利用视觉语言模型处理视觉数据集,一些工作已经利用了基于模版的提示工程,text_descriptions=[f"Thisisaphotoofa{label}"forlabelincifar100.classes]  text_tokens=clip.tokenize(text_descriptions).cuda()除了此类大型视觉语言基础模型外,一些研究工作也致力于开发可以通过视觉输入提示的大型基础模型。例如,最近META推出的SAM能够执行与类别无关的分割,给定图像和视觉提示(如框、点或蒙版),指定要在图像中分割的内容。这样的模型可以轻松适应特定的下游任务,如医学图像分割、视频对象分割、机器人技术和遥感等从模型训练、模型分发、模型商业化,美图体系化地同创作者和开发者共建模型生态:(1)模型训练:提供二次训练能力,并持续不断地为创作者提供服务,包括培训、社区和模型创作大赛。(2)模型分发:创作者和开发者共建的模型可以在美图的产品内进行分发,在分发过程中持续优化模型。(3)模型商业化:行业客户可通过MiracleVision的API和SDK进行商业使用,创作者和开发者通过商业合作获得经济收益。通用视觉-语言学习的基础模型UNITER:结合了生成(例如掩码语言建模和掩码区域建模)和对比(例如图像文本匹配和单词区域对齐)目标的方法,适用于异构的视觉-语言任务。Pixel2Seqv2:将四个核心视觉任务统一为像素到序列的接口,使用编码器-解码器架构进行训练。Vision-Language:使用像BART或T5等预训练的编码器-解码器语言模型来学习不同的计算机视觉任务。模型整体结构上,抛弃了CNN,将BERT原版的Transformer开箱即用地迁移到分类任务上面,在使用大规模训练集的进行训练时,取得了极好的效果。同时,在大规模数据集上预训练好的模型,在迁移到中等数据集或小数据集的分类任务上以后,也能取得比CNN更优的性能。模型整体结构如下图所示,完全使用原始BERT的Transformer结构,主要是对图片转换成类似token的处理,原文引入了一个patch的概念,首先把图像划分为一个个的patch,然后将patch映射成一个embedding,即图中的linearprojection层,将输入转换为类似BERT的输入结构,然后加上positionembedding,这里的position是1D的,最后加上一个learnableclassificationtoken放在序列的前面,classification由MLP完成。这里我们用RAM提取了图像的语义标签,再通过将标签输入到Grounding-DINO中进行开放世界检测,最后再通过将检测作为SAM的提示分割一切。目前视觉基础大模型可以粗略的归为三类:textuallypromptedmodels,e.g.,contrastive,generative,hybrid,andconversational;visuallypromptedmodels,e.g.,SAM,SegGPT;heterogeneousmodalities-basedmodels,e.g.,ImageBind,Valley.CoCa通过将所有标签简单地视为文本,对web-scalealt-text和annotatedimages进行了从头开始端到端的预训练,无缝地统一了表示学习的自然语言监督。因此,CoCa在广泛的下游任务上实现了最先进的性能,零样本传输或最小的任务特定适应,跨越视觉识别(ImageNet,Kinetics-400/600/700,Moments-in-Time)、跨模式检索(MSCOCO、Flickr30K、MSR-VTT)、多模式理解(VQA、SNLI-VE、NLVR2)和图像字幕(MSCOCO、NoCaps)。在ImageNet分类中,CoCa获得了86.3%的zero-shottop-1准确率,frozenencoderandfinetuneclassifier是90.6%,finetuneencoder可以到91.0%。截止目前国内外已经发布了许多包括NLP,CV和多模态在内的大规模模型,但是这些模型在应用落地上还是有待进一步探究的,目前应用落地较好的有华为的盘古,在电网和金融圈都有应用;智源的悟道系列在诗词图文上都有广泛应用,可以帮助学生看图写作,根据文字生成插图等;百度的文心也发布了在金融方面的应用。但截止目前为止大模型在实际中的应用还不是很理想,大模型发展的初衷是使用一个预训练好的大模型代替一堆小作坊似的根据不同任务训练的小模型,通过模型蒸馏知识迁移等技术在小模型上使用少量数据集达到超过原来小模型性能的目标。CV大模型在应用上的一个难点是与实际应用相结合,目前社会中用的较多的视觉相关的深度学习模型主要包括物体检测,人脸识别以及缺陷检测(部分)相比NLP模型在实际中的使用少很多,因此将CV模型与实际生产相结合发现更多的应用场景很关键。另外一个CV大模型应用的难点就是如何快速高效的使用蒸馏和知识迁移技术提升下游任务的性能,这两点难题的解决在CV大模型的实际应用中都刻不容缓。总结起来,将大模型应用于更高分辨率的下游视觉任务具有以下好处:提高感知能力、改善定位精度、提升语义理解、改善细节保留和边缘清晰度、增加鲁棒性和泛化能力,以及推动研究进展。这些好处使得大模型在处理高分辨率图像时能够获得更准确、更细致和更真实的结果。随着深度学习和计算资源的不断发展,我们可以期待更先进的大模型和相关技术的出现,进一步推动计算机视觉在高分辨率图像任务中的应用和突破
  • 所需E币: 0
    时间: 2023-11-27 11:13
    大小: 5.15KB
    上传者: 开心就很好了
    自动驾驶是高安全型应用,需要高性能和高可靠的深度学习模型,VisionTransformer是理想的选摔。现在主流的自动驾驶感知算法基本都使用了VisionTransformer相关技术,比如分割、2D/3D检测,以及最近大火的大模型(如SAM),VisionTransformer在自动驾驶领域的落地方面遍地开花。5一方面,在自动驾驶或图像处理相关算法岗位的面试题中,VisionTransformer是必考题,需要对其理论知识有深入理解,并且在项目中真实的使用过相关技术。Transformer出自于Google于2017年发表的论文《Attentionisallyouneed》,最开始是用于机器翻译,并且取得了非常好的效果。但是自提出以来,Transformer不仅仅在NLP领域大放异彩,并且在CV、RS等领域也取得了非常不错的表现。尤其是2020年,绝对称得上是Transformer的元年,比如在CV领域,基于Transformer的模型横扫各大榜单,完爆基于CNN的模型。为什么Transformer模型表现如此优异?它的原理是什么?它成功的关键又包含哪些?本文将简要地回答一下这些问题。我们知道Transformer模型最初是用于机器翻译的,机器翻译应用的输入是某种语言的一个句子,输出是另外一种语言的句子。vari*int=nilfmt.Println("i.size:",unsafe.Sizeof(i))//8vari8*int8=nilfmt.Println("i8.size:",unsafe.Sizeof(i8))//8vars*string=nilfmt.Println("s.size:",unsafe.Sizeof(s))//8varps*struct{}=nilfmt.Println("ps.size:",unsafe.Sizeof(ps))//8varsi[]int=nilvarsi1[]int=nilfmt.Println("si.size:",unsafe.Sizeof(si))//24variiinterface{}=nilfmt.Println("ii.size:",unsafe.Sizeof(ii))//16我们以生成我,爱,机器,学习,翻译成<bos>,i,love,machine,learning,<eos>这个例子做生成过程来解释。训练:把“我/爱/机器/学习”embedding后输入到encoder里去,最后一层的encoder最终输出的outputs[10,512](假设我们采用的embedding长度为512,而且batchsize=1),此outputs乘以新的参数矩阵,可以作为decoder里每一层用到的K和V;将<bos>作为decoder的初始输入,将decoder的最大概率输出词向量A1和‘i’做crossentropy(交叉熵)计算error。将<bos>,“i”作为decoder的输入,将decoder的最大概率输出词A2和‘love’做crossentropy计算error。将<bos>,“i”,“love”作为decoder的输入,将decoder的最大概率输出词A3和’machine’做crossentropy计算error。将<bos>,“i”,"love",“machine”作为decoder的输入,将decoder最大概率输出词A4和‘learning’做crossentropy计算error。将<bos>,“i”,"love",“machine”,“learning”作为decoder的输入,将decoder最大概率输出词A5和终止符做crossentropy计算error。那么并行的时候是怎么做的呢,我们会有一个mask矩阵在这叫seqmask,因为他起到的作用是在decoder编码我们的targetseq的时候对每一个词的生成遮盖它之后的词的信息。funcmain(){s:=[]string{"a","b","c"}fmt.Println("s:origin",s)changes1(s)fmt.Println("s:f1",s)changes2(s)fmt.Println("s:f2",s)changes3(s)fmt.Println("s:f3",s)}funcchanges1(s[]string){vartmp=[]string{"x","y","z"}s=tmp}funcchanges2(s[]string){//item只是一个副本,不能改变s中元素的值fori,item:=ranges{item="d"fmt.Printf("item=%s;s[%d]=%s",item,i,s[i])}}funcchanges3(s[]string){fori:=ranges{s[i]="d"}}首先我们需要为每个输入向量(也就是词向量)创建3个向量,分别叫做Query、Key、Value。那么如何创建呢?我们可以对输入词向量分别乘上3个矩阵来得到Q、K、V向量,这3个矩阵的参数在训练的过程是可以训练的。注意Q、K、V向量的维度是一样的,但是它们的维度可以比输入词向量小一点,比如设置成64,其实这步也不是必要的,这样设置主要是为了与后面的Mulit-head注意力机制保持一致(当使用8头注意力时,单头所处理的词向量维度为512/8=64,此时Q、K、V向量与输入词向量就一致了)。我们假设输入序列为英文的"ThinkingMachines"想要深度理解Attention机制,就需要了解一下它产生的背景、在哪类问题下产生,以及最初是为了解决什么问题而产生。首先回顾一下机器翻译领域的模型演进历史:机器翻译是从RNN开始跨入神经网络机器翻译时代的,几个比较重要的阶段分别是:SimpleRNN,ContextualizeRNN,ContextualizedRNNwithattention,Transformer(2017),下面来一一介绍。「SimpleRNN」:这个encoder-decoder模型结构中,encoder将整个源端序列(不论长度)压缩成一个向量(encoderoutput),源端信息和decoder之间唯一的联系只是:encoderoutput会作为decoder的initialstates的输入。这样带来一个显而易见的问题就是,随着decoder长度的增加,encoderoutput的信息会衰减。funcmain(){varc=make(chanint)fmt.Printf("c.pointer=%p\n",c)//c.pointer=0xc000022180gofunc(){c<-1addChannel(c)close(c)}()foritem:=rangec{//item:1//item:2fmt.Println("item:",item)}}funcaddChannel(donechanint){done<-2fmt.Printf("done.pointer=%p\n",done)//done.pointer=0xc000022180}在测试模型的时候,Test:decoder没有label,采用自回归一个词一个词的输出,要翻译的中文正常从encoder并行输入(和训练的时候一样)得到每个单词的embedding,然后decoder第一次先输入bos再此表中的id,得到翻译的第一个单词,然后自回归,如此循环直到预测达到eos停止标记typevisitstruct{a1 unsafe.Pointera2 unsafe.PointertypType}funcdeepValueEqual(v1,v2Value,visitedmap[visit]bool)bool{if!v1.IsValid()||!v2.IsValid(){returnv1.IsValid()==v2.IsValid()}ifv1.Type()!=v2.Type(){returnfalse}//Wewanttoavoidputtingmoreinthevisitedmapthanweneedto.//Foranypossiblereferencecyclethatmightbeencountered,//hard(v1,v2)needstoreturntrueforatleastoneofthetypesinthecycle,//andit'ssafeandvalidtogetValue'sinternalpointer.hard:=func(v1,v2Value)bool{switchv1.Kind(){casePointer:ifv1.typ.ptrdata==0{//not-in-heappointerscan'tbecyclic.//Atleast,allofourcurrentusesofruntime/internal/sys.NotInHeap//havethatproperty.Theruntimeonesaren'tcyclic(andwedon'tuse//DeepEqualonthemanyway),andthecgo-generatedonesare//allemptystructs.returnfalse}fallthroughcaseMap,Slice,Interface://Nilpointerscannotbecyclic.Avoidputtingtheminthevisitedmap.return!v1.IsNil()&&!v2.IsNil()}returnfalse}ifhard(v1,v2){//ForaPointerorMapvalue,weneedtocheckflagIndir,//whichwedobycallingthepointermethod.//ForSliceorInterface,flagIndirisalwaysset,//andusingv.ptrsuffices.ptrval:=func(vValue)unsafe.Pointer{switchv.Kind(){casePointer,Map:returnv.pointer()default:returnv.ptr}}addr1:=ptrval(v1)addr2:=ptrval(v2)ifuintptr(addr1)>uintptr(addr2){//Canonicalizeordertoreducenumberofentriesinvisited.//Assumesnon-movinggarbagecollector.addr1,addr2=addr2,addr1}//Shortcircuitifreferencesarealreadyseen.typ:=v1.Type()v:=visit{addr1,addr2,typ}ifvisited[v]{returntrue}//Rememberforlater.visited[v]=true}switchv1.Kind(){caseArray:fori:=0;i<v1.Len();i++{if!deepValueEqual(v1.Index(i),v2.Index(i),visited){returnfalse}}returntruecaseSlice:ifv1.IsNil()!=v2.IsNil(){returnfalse}ifv1.Len()!=v2.Len(){returnfalse}ifv1.UnsafePointer()==v2.UnsafePointer(){returntrue}//Specialcasefor[]byte,whichiscommon.ifv1.Type().Elem().Kind()==Uint8{returnbytealg.Equal(v1.Bytes(),v2.Bytes())}fori:=0;i<v1.Len();i++{if!deepValueEqual(v1.Index(i),v2.Index(i),visited){returnfalse}}returntruecaseInterface:ifv1.IsNil()||v2.IsNil(){returnv1.IsNil()==v2.IsNil()}returndeepValueEqual(v1.Elem(),v2.Elem(),visited)casePointer:ifv1.UnsafePointer()==v2.UnsafePointer(){returntrue}returndeepValueEqual(v1.Elem(),v2.Elem(),visited)caseStruct:fori,n:=0,v1.NumField();i<n;i++{if!deepValueEqual(v1.Field(i),v2.Field(i),visited){returnfalse}}returntruecaseMap:ifv1.IsNil()!=v2.IsNil(){returnfalse}ifv1.Len()!=v2.Len(){returnfalse}ifv1.UnsafePointer()==v2.UnsafePointer(){returntrue}for_,k:=rangev1.MapKeys(){val1:=v1.MapIndex(k)val2:=v2.MapIndex(k)if!val1.IsValid()||!val2.IsValid()||!deepValueEqual(val1,val2,visited){returnfalse}}returntruecaseFunc:ifv1.IsNil()&&v2.IsNil(){returntrue}//Can'tdobetterthanthis:returnfalsecaseInt,Int8,Int16,Int32,Int64:returnv1.Int()==v2.Int()caseUint,Uint8,Uint16,Uint32,Uint64,Uintptr:returnv1.Uint()==v2.Uint()caseString:returnv1.String()==v2.String()caseBool:returnv1.Bool()==v2.Bool()caseFloat32,Float64:returnv1.Float()==v2.Float()caseComplex64,Complex128:returnv1.Complex()==v2.Complex()default://NormalequalitysufficesreturnvalueInterface(v1,false)==valueInterface(v2,false)}}这便是encoder的整体计算流程图了,Transformer模型中堆叠了多个这样的encoder,无非就是输出连接输入罢了,常规操作。最后再附上一个Transformer的代码实现,读者有兴趣可以跟着自己复现一下Transformer模型的代码。  packagemain  import(    "log"    "sync"  )  funcinit(){    log.SetFlags(log.Lshortfile)  }  funcmain(){    lock:=sync.Mutex{}    //Go1.18新增,是一种非阻塞模式的取锁操作。当调用TryLock()时,    //该函数仅简单地返回true或者false,代表是否加锁成功    //在某些情况下,如果我们希望在获取锁失败时,并不想停止执行,    //而是可以进入其他的逻辑就可以使用TryLock()    log.Println("TryLock:",lock.TryLock())    //已经通过TryLock()加锁,不能再次加锁    lock.Lock()  }
  • 所需E币: 0
    时间: 2023-10-16 16:19
    大小: 2.13KB
    上传者: huangyasir1990
    Qt高级开发视频教程,QT视频教程下载Qt支持下述平台:MS/Windows-95、98、NT4.0、ME、2000、XP、Vista、Win7、win8、win2008、win10Unix/X11-Linux、SunSolaris、HP-UX、CompaqTru64UNIX、IBMAIX、SGIIRIX、FreeBSD、BSD/OS和其它很多X11平台Macintosh-MacOSXEmbedded-有帧缓冲(framebuffer)支持的嵌入式Linux平台,WindowsCE、Symbian、Symbian^3、SymbianAnna、SymbianBelle、MeeGo、haiku-os。前言:Qt是一个跨平台的C++图形界面应用程序框架。它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序。Qt很容易扩展,并且允许真正地组件编程。基本上,Qt同XWindow上的Motif,Openwin,GTK等图形界面库以及Windows平台上的MFC、OWL、VCL、ATL是同类型的东西。Qt和智能手机Qt目前支持主流的Android、iOS、WinPhone等智能机操作系统。MeeGo是基于Qt开发的操作系统,由于被诺基亚抛弃了,只剩一代绝版诺基亚N9手机。诺基亚手机部门出售给微软之后,大部分诺基亚手机系统开发人员都被遣散了。原来诺基亚的一部分人成立新的Jolla(卓蓝)公司,发布了MeeGo的衍生版智能手机系统Sailfish(旗鱼),相应的手机和平板也发布开卖了。另一拨人投靠了Tizen(泰泽),Tizen是英特尔和三星力推的智能手机系统,该系统整合了Limo和MeeGo,因为MeeGo系统被诺基亚抛弃,英特尔其实是被出卖了,所以只能联合三星重造智能手机系统Tizen。目前基于Tizen的首款手机三星Z1在印度上市了。在Tizen阵营,国内有中兴、百度涉及了。Qt开源项目里也有QtforTizen版本,有兴趣的可以去搜搜。Qt的优势(熟悉)Qt与各种竞品相比,主要的优势是跨平台特性。跨平台特性指的是:一次编程,到处编译。除此之外,Qt也拥有一些其它竞品的共同优势特点:面向对象开发丰富的API,并配以大量的开发文档易用且开源的开发环境
  • 所需E币: 0
    时间: 2023-9-20 16:11
    大小: 1.29KB
    上传者: 蝴蝶结欧恩
    给大家分享一套课程——Vue+DjangoRESTframework打造生鲜电商项目,附源码下载。Django项目源自一个在线新闻Web站点,于2005年以开源的形式被释放出来。Django框架的核心组件有:用于创建模型的对象关系映射;为最终用户设计较好的管理界面;URL设计;设计者友好的模板语言;缓存系统。Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(DoNotRepeatYourself)原则。微商等社交电商社交电商将成为未来零售的重要通道,社交电商所带来的巨大流量也将转变为电商的销量,人们在获取信息的同时还可以更好的享受购物带来的乐趣,社交电商将成为未来电商发展的新方向。网站开发,网页设计,网络营,微商,开淘宝或者京东网店,还有就是做代购,这些都是电子商务方面的创业项目。随着国内互联网使用人数的增加,利用互联网进行网络购物并以银行卡付款的消费方式已渐趋流行,市场份额也在迅速增长,各种类型的电商网站也将层出不穷。注:找项目,找渠道,找异业合作建议上BD邦平台看看,有很多甲方项目能给予启发,还有行业社群
  • 所需E币: 0
    时间: 2023-9-15 17:35
    大小: 1.64KB
    上传者: 开心就很好了
    Blender建模高级教程2023分享下载,Blender视频教程,Blender是一款免费开源三维图形图像软件,提供从建模、动画、材质、渲染、到音频处理、视频剪辑等一系列动画短片制作解决方案。Blender拥有方便在不同工作下使用的多种用户界面,内置绿屏抠像、摄像机反向跟踪、遮罩处理、后期结点合成等高级影视解决方案。Blender内置有Cycles渲染器与实时渲染引擎EEVEE。同时还支持多种第三方渲染器。Blender建模高级教程其包含了多边形建模、曲线、曲面建模功能,修改器、雕刻、贴图展UV设定材质、烘培场景、骨骼绑定、动画创作、粒子效果、物理仿真模拟、光线追踪引擎Cycles、相机追踪、图像后期合成等丰富、强大的功能。Blender建模高级教程,Blender是一款开源的跨平台全能三维动画制作软件,提供从建模、动画、材质、渲染、到音频处理、视频剪辑等一系列动画短片制作解决方案。Blender为全世界的媒体工作者和艺术家而设计,可以被用来进行3D可视化,同时也可以创作广播和电影级品质的视频,另外内置的实时3D游戏引擎,让制作独立回放的3D互动内容成为可能。建模前的装备为了让接下来的建模工作更加方便,首先需要进行各方面的准备。这里是以我个人为基准,如果你觉得不适合里的话可以忽略这一部分。画面的分割虽然在一个View里完成也不是不可以的,但是可以同时在各个方向中进行查看当然是更好的。因此,我们进行画面的分割。我个人比较推荐将画面分成3个。分割的方法非常的简单。3DView的右上(或是左下)有一个类似三角的形状,将鼠标指针移动到这里时,指针会变成+的形状。Blender建模软件从零建模(1)了解目标,制定大概计划目标:制作类似上图的3D模型工具:Blender,B站网课预计时间:1天内容安排:(重要)1:首先,我们要做中间的小黄人-----选定目标2:小黄人包括头角、身体、眼睛、嘴巴、眼球、眼睛、眼皮、腿-----成分分析3:身体–>脚–>角–>眼睛–>嘴巴-----制定顺序(2)基于计划,初步设计模型人物结构4:身体我们可以用(shift+A)立方体来代表,头角可以用锥体表示,眼球可以用经纬球or棱角球表示,眼睛也可以用球来表示,嘴巴可以用环体表示,脚可以用圆柱表示。
  • 所需E币: 0
    时间: 2023-8-17 11:11
    大小: 1.26KB
    全栈开发是指开发人员拥有前后端开发的能力,并且能够熟练地将前后端代码整合到一起。以下是全栈开发的完整攻略:1.学习前端基础知识全栈开发需要掌握前端基础知识,包括HTML、CSS、JavaScript等。HTML和CSS用于页面布局和样式,JavaScript用于网页交互和动态效果。2.掌握后端技术掌握后端技术是全栈开发的关键之一。后端主要使用框架和语言来开发API(应用程序接口),包括但不限于Node.js、RubyonRails、Django、Flask等。掌握后端技术可以使你能够开发API,处理数据和实现服务端今动态。3.学会使用数据库数据是应用程序中的核心,因此学会如何存储和检索数据是全栈开发的关键之一。数据库是一个可以定义,管理和访问数据的软件系统。MySQL,PostgreSQL,MongoDB和CouchDB等是一些常见的数据库可选项。全栈开发的工作职责是:能独立负责网站前台、后台开发和迭代,根据业务需要开发,制作和程序修改;参加制定网站研发及迭代方案制定;参与网站研发,按要求高质量完成编程开发;负责网站上线前的测试工作;负责跟进网站页面显示视觉效果。一个全栈开发人员是在应用程序或网站的前端和后端工作的软件程序员或Web开发人员。他们有能力处理Web开发项目,这些项目涉及构建面向用户的网站,管理数据库或在项目的规划阶段与客户合作。成为一名全栈开发人员并不一定意味着你需要掌握Web开发的前端或后端的所有内容。它只是意味着您有能力在两端工作,并了解应用程序开发中涉及的所有元素。
  • 所需E币: 0
    时间: 2023-7-29 09:51
    大小: 1.48KB
    当今社会是科技的社会,是算力快速发展的时代。随着数据中心、东数西算、高性能计算、数据分析、数据挖掘的快速发展,大模型得到了快速地发展。大模型是“大算力+强算法”相结合的产物,是人工智能的发展趋势和未来。目前,大规模的生态已初具规模。其可以实现从“手工作坊”到“工厂模式”的AI转型。大模型通常在大规模无标记数据上进行训练,以学习某种特征和规则。基于大模型开发应用时,可以对大模型进行微调,或者不进行微调,就可以完成多个应用场景的任务;更重要的是,大模型具有自监督学习能力,不需要或很少需要人工标注数据进行训练,降低训练成本,从而可以加快AI产业化进程,降低AI应用门槛。NLP大模型是被认为最接近人类中文理解能力的AI大模型,而CV大模型首次兼顾了图像判别与生成能力。未来的方向1.进一步扩大模型规模,改善模型架构和训练改善模型的架构或者训练过程可能会带来具有涌现能力的高质量模型,并减少计算量。一种方向是使用稀疏混合专家架构,其在保持恒定输入成本时具有更好的计算效率,使用更加局部的学习策略,而不是在神经网络的所有权重上进行反向传播,以及使用外部存储来增强模型。2.扩大数据规模在一个足够大的数据集上训练足够长的时间被证明是语言模型获得语法、语义和其他世界知识的关键。近期,Hoffmannetal.认为先前的工作低估了训练一个最优模型的训练数据量,低估了训练数据的重要性。收集模型可以在其上训练更长时间的大量数据,允许在一个固定模型尺寸的约束下有更大范围的涌现能力。3.更好的prompt虽然few-shotprompting简单有效,对prompting通用性的改善将进一步扩展语言模型的能力。
  • 所需E币: 0
    时间: 2023-7-29 08:52
    大小: 1.21KB
    上传者: 开心就很好了
    AIGC与NLP大模型实战-经典CV与NLP大模型及其下游应用任务实现视频教程下载,视频+源码+课件!AIGC全称AI-GeneratedContent,指基于人工智能通过已有数据寻找规律,并自动生成内容的生产方式。AIGC既是一种内容分类方式,也是一种内容生产方式,还是一种用于内容自动生成的一类技术集合。NLP是目前世界上最实用有效的一门心理行为科学。NLP全名是NeuroLinguisticProgramming,中文译为【神经语言程序学】。大模型又可以称为FoundationModel(基石)模型,模型通过亿级的语料或者图像进行知识抽取,学习进而生产了亿级参数的大模型。其实感觉就是自监督学习,利用大量无标签很便宜的数据去做预训练。AIGC是目前自然语言处理和计算机视觉领域的前沿技术之一。它可以被用于很多应用场景,比如:1、在商业领域,可以帮助企业进行智能客服、舆情监测、自然语言处理等方面的工作;2、在教育领域,它可以辅助学生写作、阅读理解、语言学习等方面的任务;3、在医疗领域,它可以帮助医生进行医学文献智能分析、病历自动填写等工作;4、在游戏领域,它可以用于游戏中的角色设计、场景设计和动画制作等方面,便于游戏开发者更为快速、更准确地创造出高质量的游戏素材,提高游戏的制作效率和品质。
  • 所需E币: 1
    时间: 2023-7-20 14:40
    大小: 1.19MB
    上传者: 张红川
    硬件三人行,运放第2部《运放电路设计实战基础视频》学习笔记.pdf
  • 所需E币: 1
    时间: 2023-7-20 14:39
    大小: 2.86MB
    上传者: 张红川
    硬件三人行,运放第2部《运放电路设计实战基础视频》学习笔记.pdf
  • 所需E币: 2
    时间: 2023-7-20 14:38
    大小: 4.73MB
    上传者: 张红川
    硬件三人行,运放第1部《运放设计电路实战入门视频》学习笔记.pdf
  • 所需E币: 1
    时间: 2023-7-12 13:31
    大小: 73.59KB
    上传者: 张红川
    石磊考研政治视频总结的六个小礼物汇总.docx
  • 所需E币: 0
    时间: 2023-7-11 15:19
    大小: 861B
    上传者: 蝴蝶结欧恩
    分享一套大数据课程——大数据工程师2023版,33周全,源码+课件+电子书+软件+包升级。全面构建五大能力体系,轻松应对多种岗位需求项目驱动式学习,知其然更知其所以然一、大数据基础· Linux系统使用· Shell脚本开发· Hadoop集群搭建二、离线数据采集计算· 海量数据采集· 海量数据计算· OLAP数据分析· 函数式编程· 内存数据高效计算· 从0~1构建数仓三、实时数据采集计算· 实时数据缓存能力· 内存数据存储能力· NOSQL数据存储能力· 新一代实时数据计算能力· 流式SQL计算能力四、全文检索引擎· 海量数据检索能力· 多条件组合查询能力· 中文词库热更新能力· 检索引擎SQL查询能力五、数据中台· 数据中台架构设计能力· 数据加工总线架构设计  能力· 基于SparkSQL的通用  引擎封装能力· 基于FlinkSQL的通用  引擎封装能力实战:电商数据仓库实战:直播平台关系三度推荐V1.0+V2.0实战:开发仿百度搜索引擎实战:数据中台大屏
  • 所需E币: 0
    时间: 2023-6-29 13:00
    大小: 1.67KB
    分享OpenVINO2022安装部署视频教程——《OpenVINO2022计算机视觉模型部署与加速教程》,附带源码+模型文件+思维导图下载!自推出以来OpenVINO一直紧随AI的技术发展,保持着高频的迭代更新,来解决各行各业开发者提出的各种需求和面临的挑战。这次版本迭代,从2021.4到2022.1,改动很大,可以说是迄今为止最重大的更新。最新版本精简了安装包和运行时库,添加了Auto-DevicePlugin、MO参数简化等一系列的有利于开发者快速上手的功能,也官宣了对PaddlePaddle的正式支持,其他还有推理API的改进等等,有兴趣可以查看官网文档,这里不一一而论。配置OpenVINO2022开发环境主要是针对C++部分,使用VS2017配置。这部分跟以前没有太大差异,同样需要配置包含目录,库目录与附加依赖项添加,跟环境变量,这几个部分的配置分别如下:若你同我一样默认安装路径直接复制即可(无需任何改动,复制进去直接回车即可)包含目录C:\ProgramFiles(x86)\Intel\openvino_2022\runtime\include;C:\ProgramFiles(x86)\Intel\openvino_2022\runtime\include\ie;C:\ProgramFiles(x86)\Intel\openvino_2022\runtime\include\ngraph;C:\ProgramFiles(x86)\Intel\openvino_2022\runtime\include\openvino应用要想强大,性能表现很重要。2021.2版本的OpenVINO,针对使用TensorflowQuantization-Aware(对权重进行逐通道量化)方式训练的模型,模型优化器新增了相应的逐通道量化支持,以高效的模型压缩,降低延时,提高性能。强大的应用,安全当然也是重中之重。2021.2版本提供了全新的安全插件,使用安全打包和执行,控制模型的访问权限。该插件基于KVM虚拟机和Docker容器,部署起来快速方便。此外,对于RedHatEnterpriseLinux(RHEL)8.2的支持,让OpenVINO的应用场景更加广泛。
  • 所需E币: 0
    时间: 2023-6-21 19:00
    大小: 2.31KB
    上传者: 开心就很好了
    分享一套PostgreSQL视频教程——《PostgreSQLDBA实战视频教程》,2023年完结新课,基于PostgreSQL14.6版本!7门课程合集,提供配套的全部文档资料!课程1、PostgreSQL安装与管理课程2、PostgreSQL数据库SQL基础课程3、PostgreSQL表详解课程4、PostgreSQL索引详解课程5、PostgreSQL对象管理课程6、PostgreSQL安全管理课程7、PostgreSQL并发控制文档资料1、什么是PostgreSQL?PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。2、PostgreSQL特征函数:通过函数,可以在数据库服务器端执行指令程序。索引:用户可以自定义索引方法,或使用内置的B树,哈希表与GiST索引。触发器:触发器是由SQL语句查询所触发的事件。如:一个INSERT语句可能触发一个检查数据完整性的触发器。触发器通常由INSERT或UPDATE语句触发。多版本并发控制:PostgreSQL使用多版本并发控制(MVCC,Multiversionconcurrencycontrol)系统进行并发控制,该系统向每个用户提供了一个数据库的"快照",用户在事务内所作的每个修改,对于其他的用户都不可见,直到该事务成功提交。规则:规则(RULE)允许一个查询能被重写,通常用来实现对视图(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、删除(DELETE)。数据类型:包括文本、任意精度的数值数组、JSON数据、枚举类型、XML数据等。全文检索:通过Tsearch2或OpenFTS,8.3版本中内嵌Tsearch2。NoSQL:JSON,JSONB,XML,HStore原生支持,至NoSQL数据库的外部数据包装器。数据仓库:能平滑迁移至同属PostgreSQL生态的GreenPlum,DeepGreen,HAWK等,使用FDW进行ETL。
  • 所需E币: 0
    时间: 2023-6-25 08:59
    大小: 1.51KB
    PostgreSQLDBA实战视频教程2023|PostgreSQL14.6教程课程1、PostgreSQL安装与管理课程2、PostgreSQL数据库SQL基础课程3、PostgreSQL表详解课程4、PostgreSQL索引详解课程5、PostgreSQL对象管理课程6、PostgreSQL安全管理课程7、PostgreSQL并发控制文档资料想要理解PostgreSQL的数据库结构,需要先了解一些重要的概念。数据库相关概念:PostgreSQL由一系列数据库组成。一套PostgreSQL程序称之为一个数据库群集。当initdb()命令执行后,template0,template1,和postgres数据库被创建。template0和template1数据库是创建用户数据库时使用的模版数据库,他们包含系统元数据表。initdb()刚完成后,template0和template1数据库中的表是一样的。但是template1数据库可以根据用户需要创建对象。用户数据库是通过克隆template1数据库来创建的;表空间相关概念:initdb()后马上创建pg_default和pg_global表空间。建表时如果没有指定特定的表空间,表默认被存在pg_default表空间中。用于管理整个数据库集群的表默认被存储在pg_global表空间中。pg_default表空间的物理位置为$PGDATA\base目录。pg_global表空间的物理位置为$PGDATA\global目录。一个表空间可以被多个数据库同时使用。此时,每一个数据库都会在表空间路径下创建为一个新的子路径。创建一个用户表空间会在$PGDATA\pg_tblspc目录下面创建一个软连接,连接到表空间制定的目录位置。表相关概念:每个表有三个数据文件。一个文件用于存储数据,文件名是表的OID。一个文件用于管理表的空闲空间,文件名是OID_fsm。一个文件用于管理表的块是否可见,文件名是OID_vm。索引没有_vm文件,只有OID和OID_fsm两个文件创建用户idpostgres-查看是否有postgres用户groupaddpostgres-添加postgres组useradd-gpostgrespostgres-添加postgres用户passwdpostgres-修改postgres密码mkdir-p/data/postgres/13.2/-创建数据库目录chown-Rpostgres:postgres/data/-修改数据库目录权限修改环境变量目的是为了不需要指定可执行文件(如psql、pg_ctl等)的绝对路径修改postgres用户的~/.bash_profile,也可以直接修改~/.bashrcPATH=xxx:/data/postgres/13.2/binPGDATA=/data/postgres/13.2/dataexportPATHexportPGDATAsource~/.bashrc执行psql验证环境变量修改生效如何启停数据库ps-ef|greppostges-检查数据库是否运行pg_ctlstop-mfast-停止数据库pg_ctlstart-D/data/postgres/13/2/data-l~/startup.log-启动数据库pg_ctlstatus-检查数据库状态
  • 所需E币: 1
    时间: 2023-6-1 10:55
    大小: 20.2MB
    手机短视频拍摄与剪辑:从新手到高手
  • 所需E币: 0
    时间: 2023-5-18 16:46
    大小: 574B
    上传者: 开心就很好了
    分享一套WEBGIS开发视频课程,2023年5月完结新课,提供课程配套的源码和课件下载!学完本套课程您可以获得:1、GIS与web基础2、GIS软件基础操作3、WEBGIS框架学习4、项目实战、POSTGIS、geotoolsWEBGIS开发基础到进阶视频教程2023全套课程,包括:GIS基础知识,web基础知识,webgis相关软件,GIS框架,项目实战,SDK相关开发,postgis数据库,geotools等。