【docker】Docker的基本指令和HTML/PYTHON/C++的简单创建示例

目录 🌊1. 什么是 Docker? 🌊2. Docker 安装 🌊3. Docker基本指令 🌊4. Docker 创建示例【联网情况】 🌍4.1 示例:HTML 🌍4.2 示例:Python 脚本 🌍4.3 示例:C++ 程序 🌊5. Docker 创建C++示例【无网情况】 🌍5.1 示例:Ubuntu环境 🌍5.2 示例:公司桌面云内 🌊6. Docker Hub 之上传与下载 🌍6.1 Docker Hub之上传 🌍6.2 Docker Hub之下载运行 🌊7. 结论 🌊1. 什么是 Docker? Docker 是一个开源平台,专为简化开发、部署和运行应用程序而设计。通过使用称为“容器”(Container)的轻量级虚拟化技术,将应用程序及其依赖环境打包到一个独立的单元中,使应用程序能够在任何环境中一致地运行。 Docker 的核心概念 镜像(Image):镜像是一个只读模板,包含了运行应用程序所需的所有内容【类似一个软件包,包含操作系统、应用程序代码、运行时、库和依赖项】。镜像可以从 Docker Hub 或其他镜像仓库中获取,也可以自己创建。 例子:如果你有 Python 应用程序,则可以创建一个包含 Python 解释器和应用程序代码的镜像。 容器(Container):容器是镜像的一个可运行实例,包含了运行应用程序的所有必要环境。容器是独立的、可移植的,并且可以在任何支持 Docker 的系统上运行【可认为是一个轻量级的、独立的虚拟机】。 例子:使用前面创建的 Python 镜像,你可以启动一个容器来运行你的应用程序。这个容器就像一个轻量级的虚拟机,里面有你的应用程序及其依赖项。 Dockerfile:Dockerfile 是一个脚本文件,包含了一系列指令,用于定义如何创建 Docker 镜像。每条指令在 Docker 镜像中创建一个新的层(Layer)。 例子:一个简单的 Dockerfile 可能包含以下内容:

用这8种方法在海外媒体推广发稿平台上获得突破-华媒舍

在今天的数字时代,海外媒体推广发稿平台已经成为了许多机构和个人宣传和推广的有效途径。如何在这些平台上获得突破并吸引更多的关注是一个关键问题。本文将介绍8种方法,帮助您在海外媒体推广发稿平台上实现突破。 1. 确定目标受众 在开始使用海外媒体推广发稿平台之前,首先要明确目标受众。不同的平台可能有不同的受众群体,因此了解自己的目标受众是非常重要的。只有找到正确的目标受众,才能制定有针对性的推广策略。 2. 优化文章标题 标题是吸引读者注意力的首要要素。一个引人注目的标题可以大大增加您的文章被点击和阅读的机会。合理利用关键词,突出文章的核心内容,同时尽量简洁明了,这将有助于提高点击率。 3. 写作高质量的内容 内容质量是吸引读者的关键因素。确保你的文章有足够的信息量,文笔流畅,并且与受众的兴趣相关。通过提供有价值的信息和见解,吸引读者并让他们对你的文章产生兴趣。 4. 使用适当的关键词 关键词在推广发稿中起着重要作用。确保在文章中使用与目标受众相关的关键词,以提高文章在搜索引擎结果中的排名。但要注意不要过度使用关键词,以免被搜索引擎视为垃圾信息。 5. 与影响者合作 与在海外媒体平台上有影响力的人合作是一个有效的推广策略。通过与他们建立联系,你可以借助他们的影响力和粉丝基础来扩大你的影响力。通过与影响者合作,你可以在海外媒体平台上获得更多的关注和曝光。 6. 通过社交媒体分享 社交媒体是一个广泛使用的平台,可以让你的文章迅速传播。利用各种社交媒体平台,如微博、微信、Facebook等,将你的文章分享给更多的人。通过社交媒体的分享功能,你可以扩大你的读者群体,并提高文章的曝光度。 7. 参与互动和讨论 积极参与读者的评论和讨论是一个有效的推广策略。回复读者的问题,提供专业见解,与读者建立良好的互动关系。这不仅可以增加您的专业形象,还可以吸引更多的读者参与讨论并分享您的文章。 8. 定期更新和发布 定期更新和发布新的内容是吸引读者回流和关注的关键。保持更新频率,确保你的受众能够获得新鲜的内容,同时定期检查和修订旧内容,以保持其质量和相关性。 通过运用上述8种方法,您可以在海外媒体推广发稿平台上获得突破和成功。始终关注目标受众,提供高质量的内容,积极互动并与影响者合作,将会帮助您吸引更多的读者并提升您的影响力。记住,在这个数字时代,有效的推广策略是实现突破和成功的关键。 华媒舍海外发稿正日益成为全球范围内信息传播的主要渠道,成为连接不同国家和文化的重要桥梁。随着信息技术的飞速发展,海外发稿不仅促进了国际交流,还加强了人们对世界的了解。从政治事件到文化现象,从科技突破到社会变革,海外发稿通过传递各种信息,让人们更加深入地了解这些领域的发展。海外发稿的重要性在于它能够打破国界限制,让不同国家的人们能够分享彼此的观点和经验。这种跨文化的交流不仅促进了社会的进步,还为各国合作提供了更多的机会。同时,海外发稿也为人们提供了更多选择,让他们能够获得更广泛和多元化的信息。信息的传播不仅在国内具有重要意义,而且在国际间也扮演着关键的角色。随着华媒舍海外发稿的不断发展,信息的跨国传播将更加便捷和高效。

如何将短信从 iPhone 传输到计算机 - 5 种灵活的方式

概括 与他人交流的多种方式之一是发送短信。对于那些包含珍贵回忆或重要信息的消息,您需要将它们发送到另一台设备(例如计算机)进行备份。将短信文件发送到计算机是保存宝贵数据的最佳方法之一。继续阅读本文,了解如何将短信从 iPhone 传输到计算机。 方法 1. 如何通过 iPhone Transfer 将短信从 iPhone 传输到计算机 将短信从 iPhone 传输到计算机的最简单方法之一是使用此iPhone Transfer 。该软件可以为您完成出色的工作。有了它,您可以轻松导出短信。此外,您可以在传输前在计算机上查看您的消息;然后将它们作为 HTML、CSV 或 TXT 文件保存到您的计算机。 除了传输短信文件外,您还可以将音乐、照片、视频、联系人、笔记、应用程序等从 iOS 设备传输到 PC。只需单击一下即可在 iPhone 和计算机之间传输重要文件。您还可以将 iOS 文件备份到计算机上的默认 iTunes 文件夹,反之亦然,不会有任何问题。当然,它是满足您所有传输需求的出色数据管理器。 此 iPhone 数据传输的特点: - 轻松将 iPhone 消息备份到 PC。 - 在界面上列出您的所有短信以供选择。 - 在计算机上以原始质量备份和恢复 iPhone 数据。 - 支持多种iOS文件类型,如联系人、短信、笔记、音乐、视频、照片、应用程序等。 - 帮助您管理电脑上的iOS数据,例如删除、编辑等。 - 与大多数 iPhone、iPad 和 iPod 兼容(支持 iOS 16)。 下载此 iOS 数据管理器。 1.1 如何有选择地将iPhone中的短信保存到电脑上 步骤1:在计算机上下载并安装软件。然后使用 USB 线连接 iPhone 设备。 步骤2:从左侧面板中选择“消息”以打开界面右侧面板上的所有消息。 步骤3:选择您要传输的短信,然后单击“导出”图标。您可以有选择地选择将消息导出到计算机的格式,例如 HTML、CSV 和文本。完成后,选择您要保存的文件夹。点击“确定”即可转移。

【MySQL】——并发控制

💻博主现有专栏: C51单片机(STC89C516),c语言,c++,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux,基于HTML5的网页设计及应用,Rust(官方文档重点总结),jQuery,前端vue.js,Javaweb开发,Python机器学习等 🥏主页链接: Y小夜-CSDN博客 目录 🎯并发控制概述 🎃丢失修改 🎃不可重复读 🎃读“脏”数据 🎯 封锁 🎃什么是封锁 🎃基本封锁类型 🎃锁的相容矩阵 🎯封锁协议 🎃一级封锁协议 🎃二级封锁协议 🎃三级封锁协议 🎯并发调度的可串行性 🎃 可串行化调度 🎃冲突可串行化调度 🎯并发控制 🎯并发控制概述 事务是并发控制的基本单位 并发控制机制的任务 对并发操作进行正确调度保证事务的隔离性保证数据库的一致性 并发操作带来的数据不一致性 1.丢失修改(Lost Update)2.不可重复读(Non-repeatable Read)3.读“脏”数据(Dirty Read) 记号 R(x):读数据xW(x):写数据x 数据不一致性:由于并发操作破坏了事务的隔离性 并发控制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性 对数据库的应用有时允许某些不一致性,例如有些统计工作涉及数据量很大,读到一些“脏”数据对统计精度没什么影响,可以降低对一致性的要求以减少系统开销 并发控制的主要技术 封锁(Locking)时间戳(Timestamp)乐观控制法多版本并发控制(MVCC) 🎃丢失修改 两个事务T1和T2读入同一数据并修改,T2的提交结果破坏了T1提交的结果,导致T1的修改被丢失。 🎃不可重复读 不可重复读是指事务T1读取数据后,事务T2 执行更新操作,使T1无法再现前一次读取结果。 不可重复读包括三种情况: (1)事务T1读取某一数据后,事务T2对其做了修改,当事务T1再次读该数据时,得到与前一次不同的值 (2)事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录神秘地消失了。 (3)事务T1按一定条件从数据库中读取某些数据记录后,事务T2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录。 后两种不可重复读有时也称为幻影现象(Phantom Row) 🎃读“脏”数据 读“脏”数据是指: 事务T1修改某一数据,并将其写回磁盘事务T2读取同一数据后,T1由于某种原因被撤销这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致T2读到的数据就为“脏”数据,即不正确的数据 🎯 封锁 🎃什么是封锁 封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁 加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。 封锁是实现并发控制的一个非常重要的技术 🎃基本封锁类型 一个事务对某个数据对象加锁后究竟拥有什么样的控制由封锁的类型决定。 基本封锁类型 排它锁(Exclusive Locks,简记为X锁)共享锁(Share Locks,简记为S锁) 排它锁又称为写锁 若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁保证其他事务在T释放A上的锁之前不能再读取和修改A 共享锁又称为读锁 若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁保证其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改 🎃锁的相容矩阵 Y=Yes,相容的请求 N=No,不相容的请求

【高阶数据结构(六)】B-树详解

💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:高阶数据结构专栏⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习更多数据结构 🔝🔝 高阶数据结构 1. 前言2. 初识B树3. B树的插入分析4. B树的规则再分析5. B树模拟实现6. 总结以及拓展 1. 前言 相信大家之前或多或少都听说过B树或B+树,奔跑文章将从认识B树到手撕B树(注意不是B减树,是B树),一步一步带你吃透它! 本章重点: 本篇文章着重讲解B树的概念和它的性质,并且回一步一步分析它的插入规则,为后续手撕B树做铺垫. 手撕B树指挥实现插入版本,删除过于复杂这里不多做讨论, 期间回将B树和传统的搜索结构如哈希,红黑树等做对比. B树学习难度较大, 请大家耐心学习 2. 初识B树 首先要明确一点, B树是一个搜索结构.那么它和传统的搜索结构,比如红黑树, 哈希等有什么区别呢?先请看下图: 以上结构适合用于数据量相对不是很大,能够一次性存放在内存中,进行数据查找的场景。如果数据量很大,比如有100G数据,无法一次放进内存中,那就只能放在磁盘上了. 是的传统的搜索结构用于内查找,也就是在内存中查找,但B树是用于外查找,就是磁盘或文件中的查找 一棵m阶(m>2)的B树,是一棵平衡的M路平衡搜索树,可以是空树或者满足一下性质: 根节点至少有两个孩子每个分支节点都包含k-1个关键字和k个孩子,其中 ceil(m/2) ≤ k ≤ m ceil是向上取整函数每个叶子节点都包含k-1个关键字,其中 ceil(m/2) ≤ k ≤ m所有的叶子节点都在同一层每个节点中的关键字从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域划分每个结点的结构为:(n,A0,K1,A1,K2,A2,… ,Kn,An)其中,Ki(1≤i≤n)为关键字,且Ki<Ki+1(1≤i≤n-1)。Ai(0≤i≤n)为指向子树根结点的指针。且Ai所指子树所有结点中的关键字均小于Ki+1。n为结点中关键字的个数,满足ceil(m/2)-1≤n≤m-1。 光看B树的定义是非常抽象的, 但定义中你需要记住的关键点是每个节点中的关键字是有序的, 并且节点的结构是: 关键字,孩子,关键字,孩子…实际上当M=2时,B树就是一颗二叉树, B树的节点中是一个数组,可存放多个数据 3. B树的插入分析 现在我们使用一个B树做插入的案例,来解释B树的这些性质. 设M=3,即三叉树,每个节点存两个数据,和三个孩子区域的划分 注意:孩子永远比数据多一个。 用后面的图可以更好的演示B树的分裂 用序列{53, 139, 75, 49, 145, 36, 101}构建B树的过程如下: 第一步: 由于M=3,一个节点只能存储两个数据,所以当插入75时,需要对这棵树做分裂. 怎样分裂呢? 普遍的做法是: 1. 找到节点中的中间数据(图中为75). 2. 创建一个新节点, 将中间数据挪动到新节点.

文心智能体平台:想象即现实(快来开发你的第一个专属AI 智能体助手吧)

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 转眼间就已经到了2024年的5月份,随着去年大模型的火爆,国内也出现了越来越多的大模型。例如我们最常见的文心一言,通义千问,掘金的豆包。但要算投资的话还是百度的研发力度最大投入资金最多,研发最全面。 文章目录 引入一、AI 智能体介绍二、文心智能体的作用三、文心智能体的优势3.1 分发渠道广3.2 优化迭代快3.3 开发难度低 四、创建你的专属智能体4.1 登录智能体官网4.2 选择零代码创建4.3 根据提示创建智能体4.4 情感狗头军师智能体 五、总结 一、AI 智能体介绍 AI 智能体我相信大家听名字也能猜出来一二,智能体就是对一个领域细分的AI助手,可以进行聊天对某个领域提供更专业的回答和数据。可以根据开发者的自身要求和使用场景去创建一个专业的智能服务体。 很多朋友可能会觉得,哎呀是不是需要调用大模型不会怎么办啊? 其实大可不必担心文心智能体平台允许开发者通过零代码或低代码的方式来进行开发智能体 二、文心智能体的作用 前面说了文心智能体其实就是,可以根据不同需求创建的智能问答AI来满足我们对各种环境的AI运用。 1、聊天:它能跟人聊天,像个话痨朋友一样。永远不会累,哈哈哈~ 2、翻译:它能听懂所有语言,帮你翻译任何文字。 3、AI 绘图:可以画出任何你想要的图篇节省人工成本。 4、分析数据:它能帮助公司分析数据,找出规律。 5、知识库:它知道很多知识,能帮你找到信息。 AgentBuilder文心智能体平台是基于文心大模型的智能体构建平台,提供自然语言创建智能体的开发新范式致力于解决行业关心的零成本智能体开发、分发和商业变现等核心问题。 平台支持广大开发者根据自身行业领域、应用场景,采用多样化的能力、工具,打造大模型时代的智能体。此外,百度贴平台为开发者提供百度生态巨大的流量池和多元的商业机会,已接入百度搜索、文心一言App、百度地图、吧、小度、车机等百度自有全矩阵服务和设备,并助力开发者完成商业闭环,是“开发+分发+运营+变现”一站式智能体赋能平台。 三、文心智能体的优势 3.1 分发渠道广 百度毕竟还是在搜索引擎上最顶的存在所以我们创作出来的智能助手更笨不用担心推广问题,创作好了之后全网分发。 3.2 优化迭代快 3.3 开发难度低 四、创建你的专属智能体 看到了这里的朋友我相信各位都对如何创建第一个智能体非常感兴趣那么我们接下来就到实践部分吧! 4.1 登录智能体官网 https://agents.baidu.com/ 4.2 选择零代码创建 4.3 根据提示创建智能体 这里我们就到了配置咱们的智能体的配置环节了,这是就可以根据你的脑洞来创建你的智能AI了。 咕咕这里选择创建的 情感狗头军师 V✪ω✪V 你们也可以根据自己的脑洞来创建嗷 在这里你需要去定义你的智能体名称 配置基本指令 增加引导示例和开场白 选择插件和数字形象 4.4 情感狗头军师智能体 到了这一步咕咕的智能体就创建完毕了快来·体验体验吧! 智能体链接: https://agents.baidu.com/ 五、总结 在百度的智能体这里,我们可以在这里选择零代码开发大大降低了上手的成本而且百度的智能体生态流量和全网分发的渠道是最广的。所以综合来看百度的文心整体是值得选择的

html--蛆

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> <style> body, html { position: absolute; margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; } canvas { position: absolute; width: 100%; height: 100%; background: #000; cursor: pointer; } #node { display: none; } </style> </HEAD> <BODY> <img id="node" src="data:image/png;base64,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" alt=""> <script> "use strict"

打造有情感的AI智能体-情感问答

目录 文心智能体平台简介 情感问答智能体介绍 优势1主动提问深入分析你的困扰,合理建议 优势2多次主动提问,引导用户补全信息。 优势3整合多种强大工具 最近发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到学习网站 文心智能体平台简介 文心智能体平台是百度推出的基于文心大模型的智能体(Agent)平台,支持广大开发者根据自身行业领域、应用场景,选取不同类型的开发方式,打造大模型时代的产品能力。开发者可以通过 prompt 编排的方式低成本开发智能体(Agent),同时,文心智能体平台还将为智能体(Agent)开发者提供相应的流量分发路径,完成商业闭环。 在该平台我们都可以创建自己的智能体。 不仅如此,我们创建的智能体还能直接为我们所用 支持如上五种部署方式。 1.直接分享给别人 2.以api的形式调用,轻松接入您的项目 3.支持以代码包或者代码块的形式快速部署到网页 4.支持在微信公众号后台配置菜单或者快捷回复 5.支持快速部署到企业微信 下面介绍下我创建的智能体。 情感问答智能体介绍 情感问答智能体:倾诉你的内心,拥抱美好生活! 【体验地址在文章最后】 随着科技的飞速发展,人们对人工智能的需求越来越高。聊天机器人作为人工智能的一个重要分支,已经成为人们生活中不可或缺的一部分。情感问答智能体是聊天机器人中的一个重要类别,它在一定程度上能够帮助用户解决情感问题,释放内心压力,从而拥抱美好生活。 在生活中我们扮演者各种各样的角色,或是创业者,或是上班族,或是学生,无论扮演的什么角色,都会有各种的生活情感,或是恋爱经历不顺,或是工作遇到挫折,或是面对各种痛苦,我们都需要有个倾诉的对象,这个对象可以是人也可以是聊天机器人,如果你没有倾诉的人,或者无法跟别人敞开心扉的倾诉,那么就可以选择跟一个虚拟的对象倾诉,这个对象正是我发布的情感问答智能体。 这款智能聊天机器人的掌握庞大的知识经验,在面对各种感情问题,挫折问题等,具有普通ai聊天机器人不可比拟的优势。 优势1主动提问深入分析你的困扰,合理建议 首先它并不会跟普通的ai对话大模型那样,你问个问题直接给你条例清晰的罗列出各种建议或者解决方案 普通ai对话大模型: 普通的ai问答大模型从来只是你问我答,无脑的罗列一些方法论。 情感问答智能体: 情感问答智能体会站在被倾诉人的角度,理解你的各种困惑,逐步询问帮你解决困惑,进行开导。 优势2多次主动提问,引导用户补全信息。 在你问它问题提供的信息模糊时,它并不会直接回答,而是会对你多次提问,让你补全信息,然后根据你回答的信息进行回答。 普通ai对话大模型: 普通的ai问答大模型只是根据你的问题列举了它所知的几种建议。 情感问答智能体: 情感问答智能体会想你提问一些信息,在你提供的信息不完善时并不会直接回答你问题,会从多角度提问。补全信息,分析回答,帮你找到最正确得到选择。 优势3整合多种强大工具 本智能体添加了文心智能体平台官方提供的多种工具 在对智能体咨询时可以指定让它去哪个网站去找资料。 智能体具备画图能力,依你所想,画你所见。 各种城市的美食推荐等。根据你的胃口,推荐合适美食。 各城市的景点推荐,根据你的需求,推荐合适景点。 智能体体验地址 情感问答情感倾听,温和引导。https://e4bayx.smartapps.baidu.com/?_swebScene=3611000000000000

Python Django 5 Web应用开发实战

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。 本文主要介绍了Python Django 5 Web应用开发实战,希望能对学习Python Web应用开发的同学们有所帮助。 文章目录 1. 前言2. 书籍推荐2.1 内容简介2.2 本书作者2.3 本书目录2.4 适合读者 3. 购买链接 1. 前言 Python是当前热门的开发语言之一,它有着广泛的应用领域。无论是网络爬虫、Web开发、数据分析还是人工智能等领域,Python都备受开发者的青睐。目前,很多企业都选择Python作为网站服务器的开发语言。因此,掌握Web开发是Python开发者必不可少的技能之一。 Django是Python在Web开发领域的首选框架,其优势在于强调开发的规范性,这不仅有助于规范开发者的编码习惯,而且与企业对规范化管理的需求相契合。因此,Django已成为开发人员必学的Web框架之一。 2. 书籍推荐 本书讲述的内容基于Django 5及更高版本,涉及从Django入门到网站架构设计的广泛主题。通过对本书内容的学习,读者能够深入了解Web开发技术,并在通往架构师之路上稳步前行。 《Django 5 Web应用开发实战》集Django架站基础、项目实践、开发经验于一体,是一本从零基础到精通Django Web企业级开发技术的实战指南。《Django 5 Web应用开发实战》内容以Python 3.x和Django 5版本为基础,从Django 5构建项目开始,逐步深入讲述Django框架的各项功能要点,每个功能要点从源码角度分析,并在源码的基础上实现自定义的功能开发。还介绍了Django的第三方功能应用,如DRF框架开发API接口、生成网站验证码、站内搜索引擎、第三方网站实现账号注册、异步任务和定时任务、即时通信实现在线聊天,同时介绍了当前流行的前后端分离模式和微服务架构网站的开发,《Django 5 Web应用开发实战》还提供了两个完整的Web实战案例:博客系统和音乐网站平台,从中读者可以学习了解网站开发的全流程,最后介绍了Django项目的上线部署。 《Django 5 Web应用开发实战》注重案例教学,讲解深入浅出,非常易于上手,适合有一定Python基础的开发人员和在校学生学习,也可以用作培训机构和大中专院校Web项目开发的教学实践用书。 2.1 内容简介 本书共16章,各章内容概述如下: 第1章介绍网站的基础知识和Django的环境搭建,包括网站的运行原理及开发流程、Django的安装、开发环境的搭建、项目的创建与调试。 第2章介绍Django的项目配置,包括基本配置、资源文件配置、模板配置、数据库配置和中间件。 第3章讲述路由的编写规则,包括路由变量的设置、设置正则表达式、命名空间与路由命名、路由的反向解析和重定向。 第4章介绍视图函数的定义方法,其中包括用户的响应方式、文件下载、HTTP请求信息、文件上传、Cookie反爬虫功能以及请求头反爬虫功能。 第5章讲述视图类的定义与使用,将视图类根据用途划分为三部分:数据显示视图、数据操作视图和日期筛选视图。 第6章详细讲解模板的编写方法,包括Django模板引擎和Jinja2模板引擎的使用。 第7章涵盖模型与数据库的内容,包括模型的定义与数据迁移、数据表的数据关系、数据的读写操作、多数据库的连接与使用,并讲述数据表的动态创建和MySQL分表功能。 第8章介绍表单与模型,主要讲述表单与模型如何结合生成数据表单,并通过数据表单操作实现数据表的数据读写。例如,同一网页多个表单、一个表单多个按钮、表单批量处理和多文件批量上传等常见的Web应用。 第9章介绍Django内置的Admin后台系统,讲述Admin的基本设置以及一些常用功能的二次开发。 第10章介绍Django内置的Auth认证系统,讲述内置模型User的使用和扩展,以及如何实现用户注册和登录功能、用户权限的设置和用户组的设置。 第11章介绍Django常用的Web应用程序,包括会话控制、缓存机制、CSRF防护、消息框架、分页功能、国际化和本地化、单元测试、自定义中间件、异步编程(多线程的应用、ASGI服务、异步视图以及异步与同步的转换)以及信号机制。 第12章介绍Django的第三方功能应用,如DRF框架开发API接口、生成网站验证码、站内搜索引擎、第三方网站实现用户注册、异步任务和定时任务、即时通信实现在线聊天。 第13章讲述博客系统的开发,网站功能包括用户(博主)注册和登录、博主资料信息、图片墙功能、留言板功能、文章列表、文章正文内容以及Admin后台系统。 第14章讲述音乐网站平台的开发,网站主要功能包括首页、歌曲排行榜、歌曲搜索、歌曲播放、歌曲点评、用户注册和登录、用户中心、Admin后台管理以及网站异常机制。 第15章讲述基于前后端分离与微服务架构的网站开发,包括Vue开发用户界面、Django开发API接口、微服务架构、JWT认证以及微服务注册与发现。 第16章分别讲述Django如何部署在Windows和Linux上。在Windows上采用IIS+wfastcgi+Django部署方案;在Linux上是基于Docker部署Nginx+uWSGI+Django来搭建网站。 2.2 本书作者 黄永祥:架构师,资深软件开发工程师,拥有10年以上一线大型Web项目开发经验,尤其擅长Go和Python语言,对相关技术架构、工具和框架,如Gin、Flask、Django等架轻就熟。已出版《实战Python网络爬虫》《精通Python自动化编程》《Django+Vue.js商城项目实战》等书籍。 2.3 本书目录 第 1 章 走进Django 5 1 1.1 Django 5的新特性 1 1.

【MySQL】——存储过程

💻博主现有专栏: C51单片机(STC89C516),c语言,c++,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux,基于HTML5的网页设计及应用,Rust(官方文档重点总结),jQuery,前端vue.js,Javaweb开发,Python机器学习等 🥏主页链接: Y小夜-CSDN博客 学习推荐: 在当今这个飞速发展的信息时代,人工智能(AI)已经成为了一个不可或缺的技术力量,它正在逐步改变着我们的生活、工作乃至整个社会的运作方式。从智能语音助手到自动驾驶汽车,从精准医疗到智慧城市,人工智能的应用已经渗透到了我们生活的方方面面。因此,学习和掌握人工智能相关的知识和技能,对于任何希望在这个时代保持竞争力的个人来说,都已经变得至关重要。 然而,人工智能是一个涉及数学、计算机科学、数据科学、机器学习、神经网络等多个领域的交叉学科,其学习曲线相对陡峭,对初学者来说可能会有一定的挑战性。幸运的是,随着互联网教育资源的丰富,现在有大量优秀的在线平台和网站提供了丰富的人工智能学习材料,包括视频教程、互动课程、实战项目等,这些资源无疑为学习者打开了一扇通往人工智能世界的大门。 前些天发现了一个巨牛的人工智能学习网站:前言 – 人工智能教程通俗易懂,风趣幽默,忍不住分享一下给大家。 目录 🎯程序设计基础 🎃变量 🎃流程控制语句 🎃光标 🎃异常处理(条件处理) 🎯存储过程概述 🎃 存储过程基本概念 🎃存储过程的类型 🎃存储过程的作用 🎯创建和执行存储过程 🎃创建和执行存储过程 🎃创建和执行带输入参数的存储过程 🎃创建和执行带输出参数的存储过程 🎯管理存储过程 🎃查看存储过程 🎃修改存储过程 🎃删除存储过程 🎯存储函数 🎃存储过程与存储函数联系与区别 🎯程序设计基础 🎃变量 在MySQL中最常见的变量类型有局部变量和用户自定义变量两种。 1.局部变量 局部变量一般用在sql语句块中,比如存储过程的begin/end。其作用域仅限于该语句块,在该语句块执行完毕后,局部变量就消失了。 要定义局部变量必须使用DECLARE来声明,定义的同时可以使用default对局部变量初始化赋值。 value是给变量提供一个默认值,包含在一个DEFAULT子句中,它的值可以被指定为一个表达式,如果没有DEFAULT子句,初始值为NULL 2.用户自定义变量 用户自定义变量的声明以“@”开头,形如:@var_name。为了实现不同SQL语句中进行值的传递,可以把一些数值存储在自定义的用户变量中,不同的SQL语句都可以对它进行访问。用户变量在客户端和数据库的连接建立时被定义,当连接断开时,用户变量将会被释放。用户变量无需用DECLARE关键字进行定义,可以直接使用。 对用户变量赋值有两种方式,一种是直接用"="号,另一种是用":="号。其区别在于使用set命令对用户变量进行赋值时,两种方式都可以使用;当使用select语句对用户变量进行赋值时,只能使用":="方式,因为在select语句中,"="号被看作是比较操作符。 🎃流程控制语句 在编写存储过程和存储函数时,可以使用流程控制语句对SQL语句进行组织,使其成为符合业务逻辑的代码块。MySQL中常见的流程控制语句主要有:IF语句、CASE语句、LOOP语句、WHILE语句、ITERATE语句、REPEAT语句、leave语句等。 1.IF语句 IF语句可以通过判断一个逻辑条件是TRUE还是FALSE,转去执行相应的语句,它的语法格式如下: IF expr_condition THEN statement_list [ELSEIF expr_condition THEN statement_list] [ELSE statement_list] END IF 2.CASE语句 CASE也是一个条件判断语句,多用于多分支判断的程序结构,它的常用语法格式如下: CASE case_expr WHEN when_value THEN statement_list [WHEN when_value THEN statement_list]……

【MySQL】——用户和权限管理(一)

💻博主现有专栏: C51单片机(STC89C516),c语言,c++,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux,基于HTML5的网页设计及应用,Rust(官方文档重点总结),jQuery,前端vue.js,Javaweb开发,Python机器学习等 🥏主页链接: Y小夜-CSDN博客 学习推荐: 在当今这个飞速发展的信息时代,人工智能(AI)已经成为了一个不可或缺的技术力量,它正在逐步改变着我们的生活、工作乃至整个社会的运作方式。从智能语音助手到自动驾驶汽车,从精准医疗到智慧城市,人工智能的应用已经渗透到了我们生活的方方面面。因此,学习和掌握人工智能相关的知识和技能,对于任何希望在这个时代保持竞争力的个人来说,都已经变得至关重要。 然而,人工智能是一个涉及数学、计算机科学、数据科学、机器学习、神经网络等多个领域的交叉学科,其学习曲线相对陡峭,对初学者来说可能会有一定的挑战性。幸运的是,随着互联网教育资源的丰富,现在有大量优秀的在线平台和网站提供了丰富的人工智能学习材料,包括视频教程、互动课程、实战项目等,这些资源无疑为学习者打开了一扇通往人工智能世界的大门。 前些天发现了一个巨牛的人工智能学习网站:前言 – 人工智能教程通俗易懂,风趣幽默,忍不住分享一下给大家。 目录 🎯用户与权限 🎃user表 🎃bd表 🎃 tables_priv表和columns_priv表 🎃 procs_priv表 🎃访问控制过程 🎯用户管理 🎃添加普通用户 🎃普通用户修改自己的密码 🎃root用户修改自己的密码和普通用户的密码 🎃root用户修改自己的密码和普通用户的密码 🎃修改用户名 🎃删除普通用户 🎯 MySQL 8 中root用户密码丢失的解决办法 🎯用户与权限 数据库的安全性是指只允许合法用户进行其权限范围内的数据库相关操作,保护数据库以防止任何不合法的使用所造成的数据泄露、更改或破坏。 MySQL提供了用户认证、授权等来实现和维护数据的安全,以避免用户恶意攻击或者越权访问数据库中的数据对象,并能根据不同用户分配在数据库中的权限。也就是说数据库安全性措施主要涉及用户认证和访问权限两个方面的问题。 MySQL用户主要包括系统用户和普通用户。 root用户是系统管理员,拥有操作MySQL数据库的所有权限。普通用户只拥有创建该用户时赋予它的权限。 当MySQL服务启动时,会读取MySQL中的权限表,并将表中的数据加载到内存,当用户进行数据库访问操作时,MySQL会根据权限表中的内容对用户做相应的权限控制。 🎃user表 MySQL中的所有用户信息都保存在user表中。user表是mysql数据库中最重要的一个表。它记录了允许连接到服务器的账号信息及一些全局级的权限信息。user表账号字段确定是拒绝还是允许传入连接。对于允许的连接,用户表中授予的任何权限都表示用户的全局权限。此表中授予的任何权限都适用于服务器上的所有数据库。 MySQL 8.0.17中user表有51个字段,这些字段共分为4类,分别是账号字段、权限字段、安全字段和资源控制字段。可以通过“desc user;”命令来查看user表的结构 🎃bd表 db表账号字段(Host、DB、User)三个字段组合成复合主键,来确定哪些用户可以从哪些主机访问哪些数据库。剩下的权限字段决定允许的操作。在数据库级别授予的权限适用于数据库和数据库中的所有对象,如表和存储程序。 输入命令desc db;可以查看db表的结构。 🎃 tables_priv表和columns_priv表 tables_priv和columns_priv表,与db表类似,但具有更小的粒度:它们应用于表和列级别,而不是数据库级别。在表级别授予的权限适用于表及其所有列。在列级别授予的权限仅适用于特定列。 tables_priv表可以对单个表进行权限设置,tables_priv表包含8个字段,前4个字段Host、Db、User、Table_name分别表示主机名、数据库名、用户名和表名。后4个字段Grantor、Timestamp 、Table_priv和Column_priv。分别表示权限是谁设置的、修改权限的时间、对表进行操作的权限和对列的操作权限。 columns_priv表可以对单个数据列进行权限设置,包含7个字段。前5个字段Host、Db、User、Table_name和Column_name分别表示主机名、数据库名、用户名、表名和列名。Timestamp和Column_priv表示修改权限的时间和对表中的数据列进行操作的权限。 🎃 procs_priv表 procs_priv表适用于存储例程(存储过程和函数)。在例程级别授予的权限仅适用于单个过程或函数。 输入命令:desc procs_priv;查看procs_pric表的结构。 procs_priv表包含8个字段,分别是Host、Db、User、Routine_name、Routine_type、 Grantor 、Proc_priv 和Timestamp 。分别表示主机名、数据库名、用户名、例程的名称、例程的类型、存储权限是谁设置的、拥有的权限和更新的时间。 🎃访问控制过程 当客户端连接到MySQL服务器时,它会经历两个访问控制阶段:连接验证阶段和请求验证阶段。 1. 连接验证阶段 当用户尝试连接到MySQL服务器时,服务器会根据以下条件接受或拒绝连接: (1)用户的身份以及是否可以通过提供正确的密码来验证其身份。 (2)用户的账号是锁定还是解锁。 服务器首先检查凭证,然后检查账号锁定状态。任何一个步骤的失败都会导致服务器完全拒绝对用户的访问。否则,服务器接受连接,然后进入第2阶段并等待请求。

C++初阶学习第九弹——探索STL奥秘(四)——vector的深层挖掘和模拟实现

string(上):C++初阶学习第六弹——探索STL奥秘(一)——标准库中的string类-CSDN博客 string(下):C++初阶学习第七弹——探索STL奥秘(二)——string的模拟实现-CSDN博客 vector(上):C++初阶学习第八弹——探索STL奥秘(三)——深入刨析vector的使用-CSDN博客 前言: 在前面我们已经学习了string的使用及其模拟实现,并且我们也已经学习了vector的使用,今天我们就来学习一下vector的模拟实现 目录 一、 vector的基本成员变量 二、 vector的逐步实现 1、构造和销毁 2、迭代器相关 3、容量相关 4、元素访问 5、vector的修改操作 三、总结 一、 vector的基本成员变量 我们之前已经学习了vector的使用,所以也基本了解了其机制,现在我们来看一下vector工作的基本机制 从图中我们可以看出,vector的操作机制实际上是通过三个指针来实现的: _start、_finish、_endOfStorage 所以vector的基本成员变量为: #include<iostream> using namespace std; //命名一个命名空间,在这个命名空间中实现我们自己的vector,这样能避免受库中vector的影响 namespace zda { template<class T> class vector { privated: T* _start; //指向有效数据的头 T* _finish; //指向有效数据的尾 T* _endOfStorage; //指向容量的尾 }; } 因为vector的本质上与顺序表很相似,只是存储的数据上变的更加多元化了,所以我们可以对基本成员做一些调整,将其改成迭代器相关的,方便我们后面写类成员函数 改进后: #include<iostream> using namespace std; //命名一个命名空间,在这个命名空间中实现我们自己的vector,这样能避免受库中vector的影响 namespace zda { template<class T> class vector { public: // Vector的迭代器是一个原生指针 typedef T* iterator; typedef const T* const_iterator; privated: iterator _start; //指向有效数据的头 iterator _finish; //指向有效数据的尾 iterator _endOfStorage; //指向容量的尾 }; } 接下来,我们就开始进入今天的正题,模拟vector的五大步骤:

STM32 入门教程(江科大教材)#笔记1

一、GPIO(通用输入输出口即I/O口) GPIO的基本结构 PA0:引脚1,PA1:引脚2.....PA15:引脚16. 寄存器:一段特殊的寄存器,内核可以通过APB2总线对寄存器进行读写,以完成输出电平和读取电平的功能。 输出寄存器写1,对应的引脚就会输出高电平,0则输出低电平 输入寄存器读取为1,对应的端口是高电平,0则为低电平。 STM32是32位的单片机,STM32 内部的寄存器都是32位。但端口只有16位,所以寄存器只有低15=6位对应的有端口,高16位没有用到。 LED:发光二极管,正向通电点亮,反向通电不亮;长正短负,也可通过内部来判断:较大的一半是负极,较小的是正极。 有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定 无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音 (左上角)一般使用高电平弱驱动,低电平的强驱动规则。 操作GPIO需要三个步骤: 1.使用RCC开启GPIO的时钟; 2.使用GPIO_Init函数初始化GPIO; 3.使用输出或者输入的函数控制GPIO。 以上三个函数为:RCC AHB外设时钟控制(使能或者失能AHB外设时钟)、RCC APB2外设时钟控制(第一个参数选择外设,第二个参数选择使能或者失能)、RCC APB1外设时钟控制(第一个参数选择外设,第二个参数选择使能或者失能)。 void GPIO_DeInit(GPIO_TypeDef* GPIOx);//参数可以写GPIOA、GPIOB等等,调用该函数后所指定的GIO外设会被复位 void GPIO_AFIODeInit(void);//复位AFIO外设 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);//用结构体的参数来初始化GPIO口 void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);//可以吧结构体变量赋值一个默认值 //四个GPIO的读取函数 uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx); uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx); //GPIO的写入函数 void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//可以把指定的端口设置为高电平 x可以是A~G,Pin 是0~15 GPIO_SetBits(GPIOA, GPIO_Pin_0);//PA0已经输入高电平 ,灭 void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//可以把指定的端口设置为低电平 GPIO_ResetBits(GPIOA, GPIO_Pin_0);//PA0已经输入低电平 ,亮 void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);前两个参数是指定端口,第三个是BitValue;根据第三个参数的值来指定参数 GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET);//指定为低电平,亮 GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET);//指定为高电平,灭 GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)0);//参数三转换类型,低电平,亮 GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)1);//参数三转换类型,高电平 灭 void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);//第一个参数是GOPI_Write,第一个参数是GPIOx,选择外设;这个函数可以同时对16个端口进行写入操作 (一)LED闪烁

【FFmpeg】Windows 10 平台 FFmpeg 开发环境搭建 ① ( 安装 Visual Studio 2015 | JavaScript_ProjectSystem 安装包丢失或损坏 )

文章目录 一、下载安装 VS20151、下载 VS20152、安装 VS2015 二、安装 VS2015 时报错处理1、JavaScript_ProjectSystem - " 安装包丢失或损坏 "2、JavaScript_LanguageService - " 安装包丢失或损坏 " 使用 QT 开发环境 开发 FFmpeg , 编译器使用 Visual Studio 2015 的 MSVC 编译器 , 因此这里先安装 VS2015 , 再安装 QT 5.10 开发环境 ; 一、下载安装 VS2015 1、下载 VS2015 VS2015 下载地址 : 国内下载地址 ( 优先推荐 ) : http://file.363635.com/data/public/vs2015.ent_chs.iso微软官方下载地址 ( 备用 ) : https://learn.microsoft.com/zh-cn/visualstudio/releases/2015/vs2015-sysrequirements-vs 下载页面 : https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/ 在 https://my.visualstudio.com/Downloads 页面 , 搜索 " visual studio 2015 " 下载页面选择下载 如下选项 ;

C++技能进阶指南——多态语法剖析

前言:多态是面向对象的三大特性之一。顾名思义, 多态就是多种状态。 那么是什么的多种状态呢? 这里的可能有很多。比如我们去买火车票, 有普通票, 学生票; 又比如我们去旅游, 有儿童票, 有成人票等等。 这些都是多态的例子。 具体转化为我们的编程思想就是:让不同类型的对象去完成相同的事, 这就是多态。 本篇内容主要讲述多态, 多为语法方面的知识点。 适合已经学完继承的友友们观看。 目录 一、多态的相关概念 1.1虚函数 1.2虚函数的重写 1.3虚函数重写的两个例外 1.4override 和 final 的使用 二、重载、重写、隐藏(重定义)的区别 三、如何构成多态 四、抽象类 五、普通继承和接口继承 六、静态绑定和动态绑定 具体什么是多态在前言中已经提到, 正文部分不做赘述。 一、多态的相关概念 1.1虚函数 被virtual关键字修饰的成员函数叫做虚函数。 例如: //A位基类 class A { public: virtual void func() //定义一个虚函数 { cout << "Afunc()" << endl; } }; 需要注意的是, 对于构造函数和析构函数来说。 析构函数可以是虚函数, 但是构造函数不可以是虚函数。 具体原因如下:(建议看完整篇文章和总结虚函数表机制——c++多态底层原理-CSDN博客​​​​​​ 之后再来看下面这段解释): 首先:通过之前的学习, 我们知道了, 虚函数的地址是存在虚函数表里面的。 想要调用对应的虚函数, 我们需要先去虚函数表中寻找对应虚函数的地址。 但是虚函数表是在构造函数的初始化列表初始化的。如果构造函数是虚函数, 那么调用构造函数的时候就找不到。 所以构造函数没办法是虚函数。 1.2虚函数的重写 虚函数的重写就是: 在派生类当中, 有一个和基类中某一个虚函数函数头的虚函数(函数头就是:函数的返回值, 函数名, 函数的参数列表)。 这个时候就会构成虚函数的重写, 即 子类重写了基类的虚函数。

人工智能(二)-Transformer模型

一、引言 上篇文章以对话模式为例讲了目前人工智能的整体架构,但是大模型依然有很多细节问题,这里作者讲一讲目前的Transformers模型原理。 二、简介 1、什么是Transformer Transformers模型是一种特定的神经网络架构,他可以使用深度学习框架提供的功能来训练模型,并在验证集和测试集上评估模型的性能。 研究者和开发者通常会使用预构建的Transformers库,如Hugging Face的Transformers库。这个库提供了大量预训练的Transformers模型,以及用于构建、训练和部署这些模型的工具。 举例,怎么用几行代码加载一个预训练的BERT模型 rom transformers import BertTokenizer, BertModel # 加载预训练的BERT模型及其分词器tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')model = BertModel.from_pretrained('bert-base-uncased') # 准备输入文本text = "Here is some text to encode" # 使用分词器对文本进行编码,然后转换为PyTorch张量inputs = tokenizer(text, return_tensors="pt") # 获取编码后的输入张量input_ids = inputs["input_ids"] # 使用BERT模型生成文本的表示with torch.no_grad(): outputs = model(input_ids) # 最后一层的隐藏状态作为文本的表示last_hidden_states = outputs.last_hidden_state 我们看看Transformers发展的历史,大体上,它们可以分为三类: GPT-like (也被称作自回归Transformer模型)BERT-like (也被称作自动编码Transformer模型)BART/T5-like (也被称作序列到序列的 Transformer模型) 他的历史进程涵盖了目前著名的各类模型,transformer是大部份对话模型的基础架构,其他的模型都是或多或少使用他的组件,加入自己的优化,适应不同的训练任务。 比如BERT在Transformer的基础上引入了双向上下文编码、预训练和微调范式、MLM和NSP等创新点、GPT-3在Transformer的基础上通过扩大模型规模、增加预训练数据的多样性和量级、优化学习策略等方面进行了显著的改进。 2、模块 自注意力机制:自注意力允许模型在处理序列中的每个元素时,同时考虑序列中的其他元素。这是通过计算注意力分数来实现的,注意力分数表示序列中每个元素对当前元素的重要性。自注意力机制通常包括三个主要组件:查询(Query)、键(Key)和值(Value)。对于序列中的每个元素,模型都会计算一个查询向量、一个键向量和一个值向量。然后,通过计算查询向量与所有键向量的点积来得到注意力分数,接着对这些分数进行缩放和softmax操作,得到最终的注意力权重。这些权重与对应的值向量相乘并求和,得到该元素的输出表示。 多头注意力:为了让模型能够同时从不同的表示子空间学习信息,Transformers模型使用了多头注意力机制。这意味着自注意力过程被复制多次,每个复制都有不同的权重矩阵。最后,这些不同的头的输出被拼接在一起,并通过一个线性层进行变换。 位置编码:由于自注意力机制本身不具有捕捉序列顺序的能力,Transformers模型引入了位置编码来给模型提供关于元素在序列中位置的信息。位置编码通常是一个与序列元素嵌入向量维度相同的向量,它被加到每个元素的嵌入向量上,以此来提供位置信息。 编码器和解码器:在完整的Transformers模型中,编码器负责处理输入序列,而解码器负责生成输出序列。编码器由多个编码器层堆叠而成,每个层包含一个多头自注意力子层和一个前馈神经网络子层。解码器也由多个解码器层堆叠而成,但每个解码器层还包含一个额外的多头注意力子层,用于关注编码器的输出。 前馈神经网络:在每个编码器和解码器层中,除了自注意力子层之外,还有一个前馈神经网络(FFN)。FFN由两个线性变换组成,中间有一个ReLU激活函数。 残差连接和层归一化:为了避免在深层网络中出现梯度消失或爆炸的问题,每个子层(自注意力层和前馈神经网络)的输出都通过残差连接,即将子层的输入加到其输出上。然后,应用层归一化来稳定训练过程。 接下来主要是解析这几个模块,搞清楚也就对Transformers的原理有了初步的了解 三、原理 1、编解码器 这个作者理解就是输入输出, Encoder (左侧): 编码器接收输入并分析,相当于理解你在说什么。最适合于需要理解完整句子的任务,例如:句子分类、命名实体识别(以及更普遍的单词分类)和阅读理解后回答问题。

简单美观易上手的 Docker Compose 可视化管理器 Dockge

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 Dockge 是 Uptime Kuma 作者的新作品,因此 UI 风格与 Uptime Kuma 基本一致,如果你正在使用 Uptime Kuma 的话,那么 Dockge 的 UI 设计应该也不会让你失望。Dockge 主打的是简单易上手,与 Potainer 相比界面简洁易用,新手使用不会感到一头雾水。 优点: 通过 Web 页面管理 compose.yaml 文件(创建 / 编辑 / 启动 / 停止 / 重新启动 / 删除 )响应式操作,pull / up / down 操作输出都会实时显示可以将 docker run ... 转换为 compose.yaml 文件直接存储 compose.yaml 文件,可以使用常规 docker compose 命令进行操作 缺点: 与 Potainer 等相比功能没有那么丰富,例如没有单独管理网络、镜像功能无法直接接管现有正在运行的容器只支持通过 Docker Compose 来完成所有操作,无法直接管理单个容器 安装 安装目录建议与官方文档保持一致 # 创建目录 mkdir -p /opt/stacks /opt/dockge cd /opt/dockge # 下载 compose.

JVM-调优之-如何使用arthas-观察jvm-cpu-内存-垃圾回收等信息

前言: 可以简单代替把dump文件下载下来后用visualvm分析了;跟visualvm类似的; docker中如何安装arthas看这个:docker中怎么使用arthas_arthas 集成到容器镜像-CSDN博客 curl -O https://arthas.aliyun.com/arthas-boot.jar wget https://alibaba.github.io/arthas/arthas-boot.jar wget https://arthas.aliyun.com/arthas-boot.jar docker cp /data/arthas-boot.jar 容器名称:/arthas-boot.jar jps java -jar arthas-boot.jar 查看dashboard 直接输入命令dashboard回车,展示当前进程的信息,结果会一直刷新显示,按ctrl+C退出。 输入dashboard(仪表板),会展示当前进程的实时数据面板,按q或ctrl+c退出 。 第一部分是显示JVM中运行的所有线程:所在线程组,优先级,线程的状态,CPU的占用率,是否是后台进程等; 第二部分显示的JVM内存的使用情况; 第三部分是操作系统的一些信息和Java版本号。 展示第一页的线程信息 thread 展示所有的线程信息 thread --all 查看最忙的n个线程 thread -n 3

【C/C++】动态内存管理(C:malloc,realloc,calloc,free || C++:new,delete)

🔥个人主页: Forcible Bug Maker 🔥专栏: C++ | | C语言 目录 前言C/C++内存分布C语言中的动态内存管理:malloc/realloc/realloc/free`malloc``realloc``calloc``free` C++中的动态内存管理:new/deletenew和delete操作内置类型new和delete操作自定义类型operator new与operator delete函数new和delete的实现原理定位new表达式(placement-new) 结语 前言 本篇博客主要内容:C++和C语言的动态内存管理方式,机制以及两者之间的区别。 在学习C语言的过程中,也曾涉及过动态内存管理,我们可以使用malloc,realloc,calloc等函数来动态管理堆中空间资源。而在C++中,有了新的动态内存管理方式,那就是new和delete关键字。忽然发现之前似乎并没有讲C语言的几个动态内存管理函数,所以标题是 【C/C++】动态内存管理 ,不过不止如此,本次还会介绍new,delete关键字的底层,并区分一下C和C++内存管理之间的不同。 C/C++内存分布 在开始讲解之前,想通过一道题引入今天的内容。 #include<iostream> using namespace std; int globalVar = 1; static int staticGlobalVar = 1; void Test() { static int staticVar = 1; int localVar = 1; int num1[10] = { 1, 2, 3, 4 }; char char2[] = "abcd"; const char* pChar3 = "abcd"; int* ptr1 = (int*)malloc(sizeof(int) * 4); int* ptr2 = (int*)calloc(4, sizeof(int)); int* ptr3 = (int*)realloc(ptr2, sizeof(int) * 4); free(ptr1); free(ptr3); } 数据段就是我们常说的静态区,代码段就是我们所说的常量区。而动态内存管理,主要管理的是堆区中的内存空间。

AI大模型探索之路-基础篇5:GLM-4解锁国产大模型的全能智慧与创新应用

目录 前言一、GLM4大模型总体概述二、GLM4和GPT4功能对比三、GLM4和GPT4性能对比1、基础能力(英文)2、指令跟随能力3、对齐能力4、长文本能力5、多模态-文生图 四、GLM-4 ALL Tools1、文生图2、代码解释器3、网页浏览4、Function Call5、多工具自动调用 五、开发者平台对比六、大模型生态对比七、开放平台注册使用1、账号注册2、生成API KEY3、额度查看4、知识库5、应用中心6、体验中心7、知识库应用测试 八、API简单测试总结 前言 随着人工智能技术的飞速发展,大型预训练语言模型已成为推动行业进步的重要力量。它们在理解自然语言、生成文本、执行复杂任务等方面展现出惊人的能力。在此背景下,国产大模型GLM-4的问世,不仅展现了中国在AI领域的实力,也为国内外研究者和开发者提供了新的研究与应用平台。 一、GLM4大模型总体概述 北京时间2024年1月16日,标志着国内人工智能重要进展的一刻,清华智谱AI在举办 developers 大会时,向公众介绍了全新一代的基座模型——GLM-4。这一模型不仅性能卓越,更加入了创新的“ALL Tools”功能,同时发布了配套工具GLMS和API接口GLM-4-API,并启动了GLM-4Assistant API的邀请内测,体现了其在多方面的应用潜力。 1)模型功能方面:新一代的GLM-4是一个长文本多模态的大模型,具有128K的长对话上下文长度,支持丰富的应用如图文互译、自动代码执行、联网操作以及稳定的全自动Function call。这些特性使得GLM-4成为一个多功能且强大的智能系统 2)模型性能方面:GLM-4的整体性能相比前代GLM-3有了显著提升,提升了60%,其综合能力已接近世界顶尖模型Gemini Ultra和GPT-4,特别是在中文处理能力上甚至超越了GPT-4,堪称国产版的GPT-4。 二、GLM4和GPT4功能对比 GLM-4拥有类似ChatGPT ALL Tools功能,可以识别用户意图,灵活调用不同功能可以根据人类意图,灵活调用CoaView3进行绘图与修改、调用代码解释器完成复杂计算、调用Function cal来调用外部工具AP1、联网、以及多工具组合调用; 目前ALL Tools功能只能在智谱清言中使用,暂时无法通过调用API实现,估计之后会在GLM AssistantAPI中实现 智谱清言 三、GLM4和GPT4性能对比 在各项评测中,GLM-4的性能表现几乎达到GPT-4的95%,尤其在中文对齐能力方面有着超越的表现。无论是基础能力(英文)、指令跟随能力、对齐能力还是长文本处理能力,GLM-4都显示出了与GPT-4相匹敌甚至超越的水平。此外,在多模态文生图方面,GLM-4也表现出色,与DALLE3相当。 1、基础能力(英文) GLM-4 在 MMLU、GSM8K、MATH、BBH、HellaSwag、HumanEval 等数据集上,分别达到 GPT-4 94%、95%、91%、99%、90%、100%的水平。 2、指令跟随能力 GLM-4 在 IFEval 的 prompt 级别上中、英分别达到 GPT-4 的88%、85%的水平,在 Instruction 级别上中、英分别达到 GPT-4 的90%、89%的水平。 3、对齐能力 GLM-4 在中文对齐能力上整体超过 GPT-4。 4、长文本能力 我们在 LongBench(128K)测试集上对多个模型进行评测,GLM-4 性能超过 Claude 2.1;在「大海捞针」(128K)实验中,GLM-4 的测试结果为 128K 以内全绿,做到100%精准召回。 5、多模态-文生图 CogView3 在文生图多个评测指标上,相比 DALLE3 约在 91.