使用附加属性 实现wpf中的passwordBox 的明文/密文密码切换

public static class LoginPasswordBoxHelper { private static bool _isUpdatingPassword = false; public static string GetPassword(DependencyObject obj) { return (string)obj.GetValue(PasswordProperty); } public static void SetPassword(DependencyObject obj, string value) { obj.SetValue(PasswordProperty, value); } public static readonly DependencyProperty PasswordProperty = DependencyProperty.RegisterAttached("Password", typeof(string), typeof(LoginPasswordBoxHelper), new PropertyMetadata(string.Empty, OnPasswordPropertyChanged)); public static bool GetIsPasswordBindingEnable(DependencyObject obj) { return (bool)obj.GetValue(IsPasswordBindingEnableProperty); } public static void SetIsPasswordBindingEnable(DependencyObject obj, bool value) { obj.SetValue(IsPasswordBindingEnableProperty, value); } public static readonly DependencyProperty IsPasswordBindingEnableProperty = DependencyProperty.

Windows 11 安装 安卓子系统 (WSA)

How to Install Windows Subsystem for Android (WSA) on Windows 11 新手教程:如何安装Windows 11 安卓子系统 说明 Windows Subsystem for Android 或 WSA 是由 Hyper-V 提供支持的虚拟机,可在 Windows 11 操作系统上运行 Android 应用程序。虽然它需要 Amazon Appstore 在计算机上安装 Android 应用程序,但 WSA 是您必须在 PC 上安装的必需组件。它类似于微软几个月前推出的 Linux 的 Windows 子系统。 安装安卓子系统有如下要求 Windows 11x64 或 ARM64启用 虚拟机平台 设置, 在Windows 11电脑上启用虚拟化推荐 16GB 及以上内存, 因为 WSA 启动就会占用 4GB 内存 安装 Windows Subsystem for Android (WSA) 打开网站 store.rg-adguard.net在第一个下拉菜单里选择 ProductId, 后面搜索框输入 9P3395VX91NR, 第二个下拉菜单里选择 Slow, 点击对勾按钮在下面加载出的文件列表中, 找到名称为如下格式的文件, 下载版本最新的那个, 大约 1.

【项目实践】贪吃蛇

一、游戏效果展示二、博客目标三、使用到的知识四、Win32 API 介绍 4.1 WIn32 API4.2 控制台程序4.3 控制屏幕上的坐标COORD4.4 GetStdHandle4.5 GetConsoleCursorInfo 4.5.1 CONSOLE_CURSOR_INFO 4.6 SetConsoleCursorInfo4.7 SetConsoleCursorPosition4.8 GetAsyncKeyState 五、贪吃蛇游戏设计与分析 5.1 地图 5.1.1 <locale.h>本地化5.1.2 类项5.1.3 setlocale函数5.1.4 宽字符打印5.1.5 地图坐标 5.2 蛇身与食物5.3 数据结构设计5.4 游戏流程设计 六、核心逻辑实现分析 6.1 游戏主逻辑6.2 游戏开始 6.2.1 打印欢迎界面6.2.2 创建地图6.2.3 创建蛇身6.2.4 创建第一个食物 6.3 游戏运行 6.3.1 KEY_PRESS6.3.2 打印右侧的帮助信息6.3.3 蛇身的移动 6.4游戏结束 七、参考代码八、控制台设置 一、游戏效果展示 贪吃蛇效果展示 二、博客目标 使用C语言在Windows环境的控制台中模拟实现经典小游戏贪吃蛇。 实现基本的功能: 贪吃蛇地图绘制蛇吃食物的功能(上、下、左、右方向键控制蛇的动作)蛇撞墙死亡蛇撞自身死亡计算得分蛇身加速、减速暂停游戏 三、使用到的知识 C语言函数、枚举、结构体、动态内存管理、预处理指令、链表、Win32 API等。 四、Win32 API介绍 本次实现贪吃蛇会使用到的⼀些Win32 API知识,接下来我们就学习⼀下。 4.1Win32 API Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外,它同时也是⼀个很大的服务中心,调用这个服务中心的各种服务(每⼀种服务就是⼀个函数),可以帮应用程序达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序(Application),所以便称之为Application Programming Interface,简称 API 函数。WIN32 API 也就是Microsoft Windows 32位平台的应用程序编程接口。

前端Vue3开发工具对比:VSCode,IntelliJ IDEA,WebStorm

1. Vue3开发,VSCode需要的插件: 2. IntelliJ IDEA对比WebStorm WebStorm中的所有功能都可以在IntelliJ IDEA Ultimate中使用 消息来源:Compare WebStorm vs. IntelliJ IDEA Ultimate - JetBrains IDEhttps://www.jetbrains.com/products/compare/?product=webstorm&product=idea 3. IntelliJ IDEA 对比 VSCode 3.1 跨组件 跳转功能 IDEA 👍 VSCode❎ 智能提示精确程度 代码改进提示 视觉感受 代码纠错能力 内存使用 VSCode完胜,WebStorm要比IDEA占用小一些 结论: 收费的还是比免费的强,VSCode作为免费产品极具竞争力,插件开发者再努力努力就能干IntelliJ

Mac本地部署大模型-单机运行

前些天在一台linux服务器(8核,32G内存,无显卡)使用ollama运行阿里通义千问Qwen1.5和Qwen2.0低参数版本大模型,Qwen2-1.5B可以运行,但是推理速度有些慢。 一直还没有尝试在macbook上运行测试大模型,不知道单机部署是否会有压力? 恰好家里有一台平时用的较少的macbook,因此,简单做了一些测试,分享给大家,供参考和讨论。 电脑配置 所使用的Macbook Pro稍微有些老,配置如下: 机型,MacBook Pro(13 英寸,2019 年);芯片,四核Intel Core i5 2.4GHz;图形卡:Intel Iris Plus Graphics 655 1536 MB =》1.5G显存,是否能有用?内存,16G;系统,macOS Sonoma 14.5 (原来系统Catalina 10.15,发现没有brew命令,安装提示系统版本太低,apple已不再支持;同时系统提示,可以升级到最新mac OS,于是安装升级到最新的系统Sonoma,点击这里查询macOS Sonoma 与哪些电脑兼容) Ollama下载安装 我们简单实用Ollama方式运行大模型。 首先从Ollama官网下载安装包。 Download Ollama on macOS 直接点击maxOS下载即可,下载的文件是Ollama.zip压缩文件,解压后是应用程序(ollama.apk),直接双击运行安装就可以。 安装完后,在启动台,就可以看到这个Ollama的图标。 大模型下载和运行 接下来就可以从ollama模型库中,选择需要的模型,做实验测试了。 例如:我们选择阿里通义千问qwen2-1.5B参数的模型:qwen2:1.5b-instruct-q5_K_M qwen2:1.5b-instruct-q5_K_M 命令行直接运行: ollama run qwen2:1.5b-instruct-q5_K_M 如果下载失败,再次尝试即可。 (modelscope) MacBook-Pro ~ % ollama run qwen2:1.5b-instruct-q5_K_M pulling manifest Error: pull model manifest: Get "https://registry.ollama.ai/v2/library/qwen2/manifests/1.5b-instruct-q5_K_M": dial tcp: lookup registry.ollama.ai: i/o timeout (modelscope) deMacBook-Pro ~ % ollama run qwen2:1.

Mysql慢日志、慢SQL

慢查询日志 查看执行慢的SQL语句,需要先开启慢查询日志。 MySQL 的慢查询日志,记录在 MySQL 中响应时间超过阀值的语句(具体指运行时间超过 long_query_time 值的SQL。long_query_time 的默认值为10,意思是运行10秒以上(不含10秒)的语句)。 目的:发现执行时间特别长的SQL查询,进行优化。 默认情况下,MySQL数据库没有开启慢查询日志,需要我们手动来设置这个参数。 慢日志常用配置项 1 2 3 4 5 6 7 8 slow_query_log 是否启用慢查询日志,默认为0,可设置为0、1,1表示开启。 slow_query_log_file 指定慢查询日志位置及名称,默认值为host_name-slow.log,可指定绝对路径。 long_query_time 慢查询执行时间阈值,超过此时间会记录,默认为10,单位为s。 log_output 慢查询日志输出目标,默认为file,即输出到文件。 log_timestamps 主要是控制 error log、slow log、genera log 日志文件中的显示时区,默认使用UTC时区,建议改为 SYSTEM 系统时区。 log_queries_not_using_indexes 是否记录所有未使用索引的查询语句,默认为off。 min_examined_row_limit 对于查询扫描行数小于此参数的SQL,将不会记录到慢查询日志中,默认为0。 log_slow_admin_statements 慢速管理语句是否写入慢日志中,管理语句包含 alter table、create index 等,默认为 off 即不写入 一般情况下,我们只需开启慢日志记录,配置下阈值时间,其余参数可按默认配置。对于阈值时间,可灵活调整,比如说可以设置为 1s 或 3s 。 查看是否开启慢查询日志 1 show variables like '%slow_query_log%'; 开启慢查询(临时,当前会话有效) 1 set global slow_query_log='ON'; 查看慢查询日志存放文件位置 1 show variables like '%slow_query_log_file%';

数据结构——树的基础概念

目录 1.树的概念 2.树的相关概念 3.树的表示 (1)直接表示法 (2)双亲表示法 (3)左孩子右兄弟表示法 4.树在实际中的运用(表示文件系统的目录树结构) 1.树的概念 树是一种非线性的数据结构,它是由n(n>=0个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。我们现实中的树是这样的: 而我们数据结构中的树是这样的: 有一个特殊的结点,称为根结点,根结点没有前驱结点除根结点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1又是一棵结构与树类似的子树。 每棵子树的根结点有且只有一个前驱,可以有0个或多个后继 因此,树是递归定义的。 在这里有一个要注意的点就是:在树形结构中,子树之间不能有交集,否则就不是树形结构。什么意思呢?例如B和C是A的子树,而在树形结构中,它们不能有任何交集,类似于: 如果一个树形结构的字树相交的话,这个结构就不能称之为树形结构。 2.树的相关概念 这里有一张图,我们接下来关于树的各个概念都是围绕这张图展开的: 节点的度:一个结点含有的子树的个数称为该结点的度; 如上图:A的为6 叶结点或终端结点:度为0的结点称为叶结点; 如上图:B、C、H、I...等结点为叶结点, 简单来说,没有子节点的节点就被称为叶子节点。 非终端结点或分支结点:度不为0的结点; 如上图:D、E、F、G...等结点为分支结点, 所以我们可以说一棵树是由所有分支节点加所有叶子节点组成的。 双亲结点或父结点:若一个结点含有子结点,则这个结点称为其子结点的父结点; 如上图:A是B的父结点 孩子结点或子结点:一个结点含有的子树的根结点称为该结点的子结点; 如上图:B是A的孩子结点 兄弟结点:具有相同父结点的结点互称为兄弟结点; 如上图:B、C是兄弟结点 树的度:一棵树中,最大的结点的度称为树的度; 如上图:树的度为6,因为在这棵树中,度最大的结点是A,它有六个子节点,也是这棵树中子节点最多的结点,所以A的度就是这棵树的度。 结点的层次:从根开始定义起,根为第1层,根的子结点为第2层,以此类推; 树的高度或深度:树中结点的最大层次; 如上图:树的高度为4 堂兄弟结点:双亲在同一层的结点互为堂兄弟;如上图:H、I互为兄弟结点 结点的祖先:从根到该结点所经分支上的所有结点;如上图:A是所有结点的祖先,对于Q来说J,E,A是它的祖先 子孙:以某结点为根的子树中任一结点都称为该结点的子孙。如上图:所有结点都是A的子孙 森林:由m(m>0)棵互不相交的树的集合称为森林; 什么意思呢?只要有两棵及以上不相交的树,我们就可以将其称为森林。 3.树的表示 树结构相对线性表就比较复杂了,要存储表示起来就比较麻烦了,既要保存值域,也要保存结点和结点之间的关系,实际中树有很多种表示方式如:双亲表示法,孩子表示法、孩子双亲表示法以及孩子兄弟表示法 等。我们在这里简单的介绍这些方法: (1)直接表示法 使用直接表示法我们要先了解树的度,如果树的度是6,我们就要定义6个指针表示它们: struct TreeNode { int data;//数据 struct TreeNode* child1;//指向孩子节点的指针 struct TreeNode* child2; //... struct TreeNode* child6; } (2)双亲表示法 二十五双亲表示法比较简单,只要定义一个指向父节点的指针就可以: struct TreeNode { int data; struct TreeNode* parent; } (3)左孩子右兄弟表示法 我们先将这种方法的表示写出来:

MATLAB常用语句总结7

MATLAB总结7:常见错误归纳 本篇专门用于记录一些应试技巧 文章目录 MATLAB总结7:常见错误归纳前言一、一些小定义和小技巧二、蒙塔卡罗求解方法1.函数的定义2.函数引用3.代码量较少的蒙塔卡罗 三、函数引用与多变量四、矩阵引用五、非线性函数:fmincon的使用六、线性规划函数1.linprog2.fminbnd、fminsearch 七、积分和微分1.quad积分2.积分int 微分diff 八、lsqcurvefit九、矩阵求解十、polyfit 函数进行多项式拟合十一、ode23和ode45十二、fzero十三、meshgrid和surf十四、fsolve 前言 记忆力比较差,把学习过程中常用的语法记录于此,方便回忆时索引 一、一些小定义和小技巧 rand的使用 rand 是用于生成在(0,1)上随机数的函数,而后面加入 rand(1,2),则意为一个一行两列的(0,1)矩阵,不可乱加。需要使用不同范围的随机数则使用 A*rand() 即可 x=5*rand(); y=5*rand(); 符号 取余:mod(A,b)%A是要进行取余的数字,b是除数 不等于:~= find()的使用 用r=find(A<=0.6),直接找到A中小于0.6的下标 分段函数的使用 y=(x<=8).* (2*x)+(x>8&&x<12).*(3*x)+(x>12).* (4*x); upper, lower的大小写转换 for i=1:length(v) if v(i)=='a' r(i)=upper(r(i)); elseif v(i)=='h' r(i)='2'; elseif v(i)=='v' r(i)='3'; end end 二、蒙塔卡罗求解方法 1.函数的定义 代码如下(示例): function c=myobj(x) c=10*x(1)^3+x(3)*(x(1)^2+x(2)^2); function r=mycon(x) r=[x(1)^2+x(2)^2-x(3)-10 ; x(1)^2+x(2)^2+x(3)-3]; function m=myrand while 1 m=[10*rand-5 ;10*rand-5 ;10*rand-5 ]; if mycon(m)<=0 return end end 2.函数引用 代码如下(示例):

算法训练 | 图论Part3 | 101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿

目录 101.孤岛的总面积 图论法 102.沉没孤岛 图论法 103.水流问题 图论法 104.建造最大岛屿 图论法 101.孤岛的总面积 题目链接:101. 孤岛的总面积 文章讲解:代码随想录 图论法 代码一:深搜 #include <iostream> #include <vector> using namespace std; int dir[4][2] = {-1, 0, 0, -1, 1, 0, 0, 1}; // 保存四个方向 int count; // 统计符合题目要求的陆地空格数量 void dfs(vector<vector<int>>& grid, int x, int y) { grid[x][y] = 0; count++; for (int i = 0; i < 4; i++) { // 向四个方向遍历 int nextx = x + dir[i][0]; int nexty = y + dir[i][1]; // 超过边界 if (nextx < 0 || nextx >= grid.

【人工智能】GPT-5的即将到来:从高中生进化到,,,博士生?

GPT-5的即将到来:从高中生进化到,博士生? 随着近月GPT-4o的出世,OpenAI也在进行一系列的采访和介绍接下来的展望和目标。 在6月22日的采访中,美国达特茅斯工程学院公布了OpenAI首席技术官米拉·穆拉蒂的访谈内容。穆拉蒂确认,GPT-5将在一年半后发布,并描述了GPT-4到GPT-5的飞跃为高中生到博士生的成长。这一消息在科技界引起了广泛关注,引发了我们对人工智能(AI)未来发展的思考。那么作为GPT的使用者、创作者和面对者,我们应该如何看待这潘多拉魔盒呢? 从GPT-4到GPT-5:智能的飞跃 高中生到博士生的进化 穆拉蒂将GPT-4比作“聪明的高中生”,而将GPT-5比作“博士生”,这一类比形象地说明了两者在智能水平上的差距。GPT-4虽然在许多任务中表现出色,但它的智能水平依然有限。相较之下,我认为GPT-5将具备更高的理解能力、推理能力和专业知识储备,能够在特定任务上达到博士级别的智能——当然这是比喻的说法,但我认为如果官方能够有底气地说出这句话,那么很难不认同这次的升级是质的飞跃,是智的飞跃。 就如上次介绍4o的博文一样所说,4o的发布很有可能就是OpenAI放出的一个诱饵弹,是一个预兆也是一种告示,是对它的用户,对它的竞争对手——一年半之后,我GPT5将重磅袭来,将震动世界,GPT将引来进化。 这种进化从技术层面上意味着,GPT-5不仅仅是在数据处理和信息生成方面有所提升,还将能够更好地理解复杂的概念和上下文关系,从而在更多的应用场景中表现出色——这些都是以往的版本所不足的地方。例如,GPT-5可能在医学诊断、法律咨询和科学研究等领域展现出更强的能力,提供更加精准和有价值的建议和分析。 特定任务的突破 穆拉蒂强调,GPT-5的“博士级”智能仅适用于某些特定任务,并非全面超越人类智能。这一点非常重要,因为它提醒我们,尽管AI技术在不断进步,但它在许多方面仍然需要人类的监督和指导。 在某些特定任务上,GPT-5的智能水平可能达到甚至超过人类。例如,在自然语言处理、数据分析和模式识别等领域,GPT-5有望实现显著突破,帮助我们解决复杂问题,提高工作效率。然而,在需要创造性思维、情感理解和道德判断的任务中,AI仍然无法完全取代人类的作用。 GPT-5的潜在应用场景 那么GPT5的飞跃可能会出现在哪些地方呢?或者说它相对于之前的版本,都会有哪些提升呢? 我们注意到奥特曼的采访中有一段话: 他表示GPT-4”有些糟糕“。实际上从我们用户的体验上来说,GPT-4已经能帮助我们解决很多冗杂、繁琐以及较为困难迅速解决的问题,它在用户的心中是不可取代的一个很高的地位。但是如果连CEO都说它实际上没那么好用——这其实可以看出潜台词:”下一代的GPT一定不会是类如GPT-4到GPT-4o那般的提升性进化,很有可能是从根本、从某些算法上改变GPT的运行模式,从而达到更好的使用体验,让它更好用——这个好用不仅仅指的是用GPT实现一些文本创造或者问题的回答——现在大部分用户也只是局限于这些作用。它会变得更加广泛,更加通用。 奥特曼进一步解释说:“我希望它能取得重大飞跃。GPT-4 经常犯很多错误,比如在推理方面表现不佳,有时还会完全跑偏,犯下低级错误,就像连一个六岁孩子都不会犯的一样。” 是的,这说明GPT5是在向着“不犯错误”这个绝对选项去的。 那么具体会落实到哪些方面进行提升呢?首先肯定是常规的各方面性能和准确率的提升。 文本创作能力提升 文本创作是人工智能的试金石,是看一个大模型是否好用的基本测试项目。GPT作为大模型的老大哥,在该方面定会有不小的提升。首先是对资源搜集的范围会更新到更新的日期,材料也会更权威,更科学。而输出的文笔、风格、提示词所摄取的信息以及输出,都必然会变得更加好用。 高级推理与专业知识 GPT-5有望在高级推理和专业知识的应用上实现飞跃。作为“博士生”,GPT-5将具备更强的逻辑推理能力和更深入的专业知识储备。这将使其在处理复杂问题和特定领域的任务时,表现得更加出色。例如,GPT-5可能在法律分析、科学研究和高等教育等领域,展现出无与伦比的智能和效率。 自主学习与适应能力 随着技术的发展,GPT-5预计将具备更强的自主学习和适应能力。通过不断吸收新的信息和知识,GPT-5可以快速适应变化的环境和任务需求。无论是在数据分析、自然语言处理,还是在情感理解和创造性思维方面,GPT-5都将展现出更高的灵活性和适应能力。 医疗健康 医疗健康是AI技术应用的一个重要领域。随着GPT-5的推出,我们可以期待它在医学诊断、病患咨询和医学研究等方面发挥更大的作用。 在医学诊断中,GPT-5可以帮助医生分析病患的病史、症状和实验结果,提供精准的诊断建议。这不仅可以提高诊断的准确性,还可以减轻医生的工作负担。在病患咨询方面,GPT-5可以通过自然语言处理技术,与病患进行互动,解答他们的疑问,提供健康建议,甚至在紧急情况下提供初步的医疗指导。 此外,GPT-5还可以在医学研究中发挥重要作用。它可以帮助研究人员分析大量的医学文献,识别出潜在的研究方向和趋势,加速新药的研发过程。通过对医学数据的深入分析,GPT-5可以帮助我们更好地理解疾病的机制,寻找新的治疗方法。 教育培训 教育领域是AI技术应用的另一个重要方向。GPT-5的智能提升将为教育培训带来新的可能性。 首先,GPT-5可以作为智能导师,帮助学生解决学习中的问题。它可以根据学生的学习进度和兴趣,提供个性化的学习建议和资源,帮助学生更有效地掌握知识。此外,GPT-5还可以通过与学生的互动,提供实时的反馈和指导,帮助他们克服学习中的难点。 其次,GPT-5可以帮助教师改进教学方法。它可以分析学生的学习数据,识别出教学中的薄弱环节,提供改进建议。通过对教学内容的优化,GPT-5可以帮助教师提高教学效果,提升学生的学习体验。 最后,GPT-5还可以在职业培训中发挥作用。它可以根据学员的职业需求,提供定制化的培训课程,帮助他们掌握新的技能,提升职业竞争力。无论是在学校教育还是职业培训中,GPT-5都有望成为一种强大的辅助工具。 商业和金融 在商业和金融领域,GPT-5的应用前景同样广阔。随着智能化水平的提升,GPT-5将能够在数据分析、市场预测和客户服务等方面发挥重要作用。 在数据分析方面,GPT-5可以帮助企业处理和分析海量的商业数据,识别出市场趋势和机会。通过对历史数据的深入分析,GPT-5可以为企业提供精准的市场预测,帮助他们制定更加科学的商业策略。 在客户服务方面,GPT-5可以通过自然语言处理技术,与客户进行互动,提供及时的解答和帮助。无论是在电话客服还是在线客服中,GPT-5都可以通过模拟人类的对话方式,提供高质量的服务,提升客户满意度。 此外,GPT-5还可以在金融领域发挥重要作用。它可以帮助金融机构分析市场数据,识别出投资机会,提供投资建议。通过对金融数据的深入分析,GPT-5可以帮助投资者做出更加科学的投资决策,降低投资风险。 面对GPT-5——是谁?如何交往? 随着届时GPT-5的推出,我们必然会提高与人工智能AI的交往。与人交流很难,需要很多的规则和规范。而与人工智能,同样也不简单。GPT5更加聪明,它也更加有可能能够通过足够广的知识面猜测到人类的思维模式和形式。这使得我们能够更好地去使用它,但是同时也会带来一问题:AI系统可能被恶意利用,幕后的人类使用AI进行诈骗、窃取等违法操作。因此,我们需要制定严格的法律法规,加强对AI技术的监管,确保其安全性和可靠性。 在GPT-5时代,人机协作将会更加普遍。但你要记住是人机协作而不是人人合作。这是前所未有的——对比上个年代,这不是简单的人类与机器,或者更详细的是人类与计算机,这是人工智能。这种技术上的协作实际上还有很多需要拓展和研究的点。我们需要从严对待,正确使用。 GPT-5发布将对社会产生深远的影响。一方面,它将带来新的就业机会和经济增长点;另一方面,它也可能导致一些传统岗位的消失。因此,我们需要制定相应的政策,帮助劳动者适应新的工作环境,提升他们的职业技能。 前几日,OpenAI同时也发布了一个惊人的消息:GPT的API服务将停止对中国开放。很难说这与一年半后的GPT5发布无关——尽管这有些过于勉强。针对当前的环境,这种措施似乎似曾相识当年的华为。我们只有不断努力,在人工智能和机器学习的路上做出更多成绩,才有可能不对国外的技术如此依赖。 当哪一天GPT-5或者Claude新版本的发布不再让国人如此惊讶和关注,而是更在意如何提升国内AI大模型的准确度和效率时,这是或许才会在AI世界看到大同的趋势和迹象。 “百尺竿头须进步”,在GPT-5到来的前后,愿我们能共同进步,无限提升。

5分钟教你用AI把老照片动起来,别再去花49块9的冤枉钱了

文章目录 需要的工具 最近,AI视频在各大平台上,又火了。 只是火的形式,变成了将老照片动起来,打情感牌,或者做很多经典电视剧的再整活。 直接把可灵的生成时间,从以前的4分钟,生生的干成了20分钟。 火的原因,一方面是因为快手可灵的图生视频正式上线,给大家提供了一个工具的基础。 另一方面,也是因为我之前写的那篇松尾公用AI视频复活爱人的文章,被各大媒体转载&洗稿,又破了一次圈,让很多人看到,原来,AI还能做这么又意义的事。 而在火的背后,因为太快,因为可灵离普通人还是有点远,产生了信息差,那自然就又多了很多很奇怪的产业链。 比如,今天不知道在哪看到的,已经再开始把AI视频卖49.9,来赚信息差的钱了。 就怎么说呢,其实这个东西也蛮简单的,有兴趣的,完全可以做。正好,也很久没有写这种教程了,那这次,就让我们,开始吧。 我们以修复黑白老照片,然后用AI把他动起来这个Case为例。 正常需要三步:1.高清化黑白老照片,2.给黑白老照片上色,3.把照片扔到AI视频里让它动起来。 是不是听起来很简单?不止听起来简单,做起来也很简单。 我本来准备找我妈要一张以前家里的黑白老照片,但是她说没了。但是给我发了一张她很喜欢的演员的老照片,叫林青霞。 真的,好美。 第一步,那自然就是把老照片给超清化。 这一步,其实有很多种做法,TopazAI、MagnificAI、SD啥的,但是真正好用的傻瓜的手段,我觉得都是大道至简朴实无华的。 所以,我们打开美图秀秀,在首页找到这个画质修复。 没开会员的,选高清就行,要是有会员的,可以用超清或者AI超清,对于老照片来说,其实区别不大。 很快啊,一张老照片,就高清了。 第二步,给黑白照片上色。 这一步推荐给大家一个很好用的网站:https://palette.fm/ 去年3月我就给无数人推荐过。 直接传一张照片上去,你就可以看到它基于你的照片,用AI上色的无数模板。 你可能会看到,下载高清和没有logo的版本,要钱。 但是问题不大,没注册一个新账号,就有1积分,下载一个高清且没有logo的图,正好一积分。 所以,理论上你无限新注册账户,就可以无限白嫖。。。 我挑了我很喜欢的蓝色衣服的上色风格,然后Down了下来。 现在,已经上好色的老照片有了,下一步,那自然就是,用AI让老照片动起来。 第三步,用AI视频让老照片动起来。 这里我们基本上,用的都是快手可灵,因为他是国内唯一一个跟Sora同架构的DiT模型,效果最好,也是中国模型,对亚洲人识别奇佳。 或者选择 国内API平台:https://api.maynor1024.live/chat 需要的工具 luma提示词增强: https://chatgpt-plus.top/g/g-28FfW0ZYq-lumati-shi-ci-zeng-qiang-v0-2-gua-yong-yu-ke-ling-kling-runway-lumadeng luma国内使用: https://api.maynor1024.live/chat 注意:第二个网站需要是按次数收取一定费用的,如果需要免费使用可以看末尾给的备选方案。 点击第一个网站,看到如下画面,此时是未登录状态: 输入共享4o授权码,点击下方的普通账号区可免费使用gpts,有次数限制。 再次打开第一个链接即可成功登录使用: 然后我们选择一张图片上传,图片可点击左下角的上传图标也可以拖拽上传。 gpts一次性生成六种不同风格的视频大模型提示词,按照需要选择即可: 然后我们登录第二个网站,没有注册的注册一下:https://api.maynor1024.live/chat,登录后点击钱包,按需要充值。 充值完成后,点击令牌,创建令牌: 然后就可以使用令牌了,点击使用令牌,点击视频,上传一张需要动起来的老照片: 把第一个网站生成的视频提示词粘贴过来,视频即可生成: 最后,你可以自己扔到剪映里面,配上音乐,去剪一下,这就完事了。 是不是很简单? 相信我,你也一定会做的,所以也不用付费去找教程,更不用花49块9,来买个这个。 回忆本就不应该,被金钱所裹挟。 愿我们,都能有最美的记忆。 以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章,我们,下次再见。

阿里云 ECS 服务器的安全组设置

阿里云 ECS 服务器的安全组设置 缘由安全组多个安全组各司其职一些常见的IP段百度 IP 段华为云 IP 段搜狗蜘蛛 IP 段阿里云 IP 段 。。。 缘由 最近公司规模缩减,原有的托管在 IDC 机房的服务器,都被处理掉了,所有代码都迁移到了阿里云的云服务器上了。 因为是小公司,只有一台应用服务器,所以在原有的服务器维护中,会对很多来源的 IP 通过 IPSec 进行禁用,以降低不必要的访问造成资源浪费。 但是,在迁移到云服务器后,发现 IPSec 好像不太起作用,然后发现阿里云自身提供了安全组设置,基本上就和 IPSec 一样的,所以,就简单了解了一下。 CSDN 文盲老顾的博客,https://blog.csdn.net/superwfei 老顾的个人社区,https://bbs.csdn.net/forums/bfba6c5031e64c13aa7c60eebe858a5f?category=10003&typeId=3364713 安全组 在进入阿里云的 云服务器Ecs 管理后,在网络与安全下有一个安全组,就相当于 IPSec的防火墙设置了。 然后,我们就可以创建一个新的安全组了。 在创建规则的时候,记得选择网络,即可对安全组生效范围进行设置了,如果没有选择网络,那么安全组是无法生效的哦。 多个安全组各司其职 安全组是可以设置多个的,每个安全组设置可以倾向一个方面,用来管理各种请求的处理。 例如老顾这里的这样,用多个安全组来进行管理。最下边的,是允许访问的 IP 地址集合,比如在家办公的 IP,公司的 IP,云服务器内网的 IP 之类的。 而由于老顾的资源很少,所以无法承载大并发的问题,所以老顾对一些无效,或者没有意义的访问都进行了拒绝访问,比如来自华为云的请求,比如来自搜狗蜘蛛的请求(垃圾搜索引擎,已经好多年没见人维护过了),比如来自阿里云其他网段的请求。 再来就是中间的,对于访问较少的时候,手动设置为允许访问,当并发过大的时候,或者有重要活动的时候,为了保证稳定而手动设置为拒绝访问的 IP 地址,比如百度之类的。 一些常见的IP段 百度 IP 段 58.48.28.0/24 只能确定 58.48.28.229 是百度的,在设置 robots 的地方,如果禁用了这个 229 的 IP,那么百度 Robots 检查更新后,下边的校验会异常,无法进行访问。 116.179.32.0/24 使用 nslookup 对 116.

LLama-Factory大模型训练框架,基于自己数据集微调qwen7B模型实战

一,项目简介 LLama-Factory,大模型训练框架,支持多种模型,多种训练方式, 项目github地址:link 项目特色 多种模型:LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Yi、Gemma、Baichuan、ChatGLM、Phi 等等。集成方法:(增量)预训练、(多模态)指令监督微调、奖励模型训练、PPO 训练、DPO 训练、KTO 训练、ORPO 训练等等。多种精度:16 比特全参数微调、冻结微调、LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 2/3/4/5/6/8 比特 QLoRA 微调。先进算法:GaLore、BAdam、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ、PiSSA 和 Agent 微调。实用技巧:FlashAttention-2、Unsloth、RoPE scaling、NEFTune 和 rsLoRA。实验监控:LlamaBoard、TensorBoard、Wandb、MLflow 等等。极速推理:基于 vLLM 的 OpenAI 风格 API、浏览器界面和命令行接口。 二, 支持训练模型以及地址 或者去魔搭社区,是真的快 link 模型名模型大小TemplateBaichuan 27B/13Bbaichuan2BLOOM/BLOOMZ560M/1.1B/1.7B/3B/7.1B/176B-ChatGLM36Bchatglm3Command R35B/104BcohereDeepSeek (Code/MoE)7B/16B/67B/236BdeepseekFalcon7B/11B/40B/180BfalconGemma/Gemma 2/CodeGemma2B/7B/9B/27BgemmaGLM-49Bglm4InternLM27B/20Bintern2Llama7B/13B/33B/65B-Llama 27B/13B/70Bllama2Llama 38B/70Bllama3LLaVA-1.57B/13BvicunaMistral/Mixtral7B/8x7B/8x22BmistralOLMo1B/7B-PaliGemma3BgemmaPhi-1.5/Phi-21.3B/2.7B-Phi-34B/7B/14BphiQwen/Qwen1.5/Qwen2 (Code/MoE)0.5B/1.5B/4B/7B/14B/32B/72B/110BqwenStarCoder 23B/7B/15B-XVERSE7B/13B/65BxverseYi/Yi-1.56B/9B/34ByiYi-VL6B/34Byi_vlYuan 22B/51B/102Byuan 三,硬件依赖 * 估算值 方法精度7B13B30B70B110B8x7B8x22BFullAMP120GB240GB600GB1200GB2000GB900GB2400GBFull1660GB120GB300GB600GB900GB400GB1200GBFreeze1620GB40GB80GB200GB360GB160GB400GBLoRA/GaLore/BAdam1616GB32GB64GB160GB240GB120GB320GBQLoRA810GB20GB40GB80GB140GB60GB160GBQLoRA46GB12GB24GB48GB72GB30GB96GBQLoRA24GB8GB16GB24GB48GB18GB48GB 四,安装环境和训练实战 4.1 环境安装 git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -e ".[torch,metrics]" 4.2 构建自己的数据集 [{ "input": "2023年3月16日14时55分许,鄂温克族自治旗伊敏河镇发生一起一般事故,造成一人死亡,直接经济损失人民币200万元。", "output": "

字符串和正则表达式踩坑

// 中石化加油卡号格式:以 100011 开头共19位 public static final String ZHONGSHIYOU_OIL_CARD_PATTERN = "^100011\\d{13}$"; // 中石油加油卡号格式:以90、95、70开头共16位 public static final String ZHONGYOU_OIL_CARD_PATTERN = "^(90|95|70)\\d{14}$"; public static boolean checkOilCardNumber(String cardNumber) { // 使用正则表达式检查加油卡号是否符合规定 return OrderProductConst.ZHONGSHIYOU_OIL_CARD_PATTERN.equals(cardNumber) || OrderProductConst.ZHONGYOU_OIL_CARD_PATTERN.equals(cardNumber); } public static void main(String[] args) { System.out.println(checkOilCardNumber("9501234567890123")); } 上面代码输出 false 将 equals 改成 matchers 也是false // 中石化加油卡号格式:以 100011 开头共19位 public static final String ZHONGSHIYOU_OIL_CARD_PATTERN = "^100011\\d{13}$"; // 中石油加油卡号格式:以90、95、70开头共16位 public static final String ZHONGYOU_OIL_CARD_PATTERN = "^(90|95|70)\\d{14}$"; public static boolean checkOilCardNumber(String cardNumber) { // 使用正则表达式检查加油卡号是否符合规定 return OrderProductConst.

研0学习Python基础4

1.数组是一种存储大量同性质数据的连续内存空间,只要使用相同的变量名称,便可以连续访问 每一组数据。由于数组元素的便利性,使得大多数程序中都可以看到数组的身影。数组是一 个带有多个数据且模式相同的元素集合。比如,数值所构成的数组。 a=['aple','watermelon','banana'] print(a[1]) a=[123,456,789] print(a[1]) a=[[11,22,33], [44,55,66], [77,88,99]] print(a[1]) print(a[1][0]) 运行结果: 2.在 Python 的循环中,常常会用到一个叫作 range 范围的函数。所以,特地在介绍循环的处 理之前,先介绍什么是 range ,它用来创建 r维数组的连续数据,该函数是创建范围的动作。注意 range的返回值是一维List阵列。 a=range(2,6) print(a) print(list(a)) a=range(0,6,2) print(a) print(list(a)) a=range(6,0,-2) print(a) print(list(a)) 运行结果: 3.for语句用于重复性的操作时非常有效,通常会与数组结合起来使用。在Python程序语言 中,循环的表示方法和一般的C或Java语言有些不一样。 for x in range (2,6): print(x) print("end") for x in range(0,6,2): print(x) print("end") for x in range(6,0,-2): print(x) print("end") a=['apple','watermelon','banana'] for x in a: print(x) print("end") for x in range(1,10): for y in range(1,10): print(str(x)+"

FC、NoF+、RoCE存储网络简介

全闪存时代背景下,传统的 FC存储网络 (Fibre Channel,网状通道)已经无法满足全闪存数据中心的要求, NVMe存储协议 (Non-Volatile Memory express,非易失性内存主机控制器接口规范)的出现极大提升了 存储系统内部的存储吞吐性能、降低了传输时延, NoF存储网络 (NVMe over Fabric)应运而生。在多种Fabric技术中, NVMe over RoCE (RDMA over Converged Ethernet)被广大存储厂商所接受 ,成为业界 NoF 的主流。 存储协议从传统串行 SCSI 协议发展到高速并行的 NVMe 协议。新一代存储网络基于 RDMA(Remote Direct Memory Access ,远程直接存储读取)技术,保证了全闪存 NVMe 协议的高吞吐、低时延的特性。 一、FC存储网络特点 FC 存储网络优点: 具备高可靠、稳定低时延的特点:FC 内在的协议机制支持快速故障 感知通告(百 ms 级),同时 FC B2B Credit 流控机制带来了稳定低时延性能。 FC存储网络的缺点: 厂商垄断,网络技术封闭:业界唯二国外厂商,存在巨大的业务连续风险 带宽不足,存储性能瓶颈:FC 网络最大只有 32G 带宽,满足不了业务发展需求运维复杂,依赖原厂支持:FC 运维人员稀缺,运维依赖原厂响应 二、NoF的产生背景: NVMe over Fabric 中的“ Fabric ”,是 NVMe 的承载网络,这个网络可以是 RoCE、 FC 或 TCP 。具体说明如下: NVMe over FC 协议标准为 FC-NVMe,FC-NVMe 和 FC-SCSI 同样都基于 FCP,IO 交互基于Exchange。FC-NVMe 基于传统的 FC 网络,通过升级主机驱动和交换机支持,FC-SCSI 和 FC-NVMe 能同时运行在同一个 FC 网络中。FC-NVMe 能最大化继承传统的 FC 网络,复用网络基础设施,基于 FC 物理网络发 挥 NVMe 新协议的优势。 NVMe over TCP 基于现有的IP网络,采用 TCP 协议传输 NVMe,在网络基础设施不变的情况下实现了端到端 NVMe。虽然 NVME over TCP 网络性能弱于 FC 和 RoCE,但整体性能通过 NVMe 得到提升,对比 iSCSI 仍有大幅度的提升。 而且 NVME over TCP 对网络的要求比较低,具有更强大的兼容性,不需要单独建设无损网络,传统以太网即可支持,因此在不追求高性能的情况下,NVMe over TCP 将是未来市场的普遍选择。 NVMe over RoCE 是 NVMe over RDMA 的一种,RDMA 是承载 NoF 的原生网络协议,RDMA 协议除了 RoCE 外还包括 IB(InfiniBand)和 iWARP(Internet Wide Area RDMA Protocol)。其中,基于以太网的 RoCE 目前已成为 RDMA 的主流网络承载方式。NVMe over RDMA 协议比较简单,直接把 NVMe 的 IO 队列映射到 RDMA QP ( Queue Pair )连接,通过 RDMA SEND , RDMA WRITE,RDMA READ 三个语义实现 IO 交互。NVMe over RoCE 基于融合以太网的 RDMA 技术承载 NVMe 协议。 三种方案相比较:基于以太网的 RoCE 比 FC 性能更高(更高的带宽、更低的时延),同时兼具 TCP 的优势(全以太化、全 IP 化),因此 NVMe over RoCE 是 NoF最优的承载网络方案,也已成为业界 NoF 的主流技术。 NVMe over Fabric 作为集中存储网络的下一跳,会形成两个主要市场:一个是 以 NVMe over RoCE/FC 为主,主打高性能和高可靠的市场;另一个是以 NVMe over TCP 为主,主打扩展性和兼容性的市场。 三、RoCE 与 FC 的差异

植物大战僵尸融合嫁接版 MAC 版本下载安装详细教程

继植物大战僵尸杂交版火了之后,PVZ改版可谓是百花齐放,最近又有一个非常好玩的模式被开发出来了,他们称为《植物大战僵尸融合嫁接版》 该版本并没有对植物卡牌做改动,而是可以将任意两种植物叠放到一起进行融合,产生新的植物,非常好玩 现在除了 PC Win 电脑安卓手机登也可以直接安装到 MAC 上了 该版本一直没有 MAC 版本推出,我也是好不容易才把该游戏搞到我的 Macbook 上面来,所以 Win 版本比较简单资源到处都有就不介绍了,本文主要还是交大家怎么在 MAC 上安装该游戏 我已经将该游戏整理成一个 dmg 安装包了,所以大家下载安装还是比较方便的,安装说明也贴到了安装包内了 植物大战僵尸融合嫁接版安装包:https://www.hereitis.cn/articleDetails/2694 大家下载好安装包后,直接打开,如下图: 然后我们将左侧的游戏拖拽到右侧文件夹中,期间可能会出现读条,等待完成就成功安装到你的电脑上了 然后我们前往启动台打开该游戏,就可以开始游玩了 如果正常打开就算可以了,但也能出现打不开的情况,需要我们在进行一些设置 安装问题解决 设置允许运行任何来源软件 游戏打开时显示未知的开发者或者不安全已损坏等等提示,如果你还未设置过允许运行任何来源软件,那么需要你进行下面的设置 单次允许:打不开后,进入设置->隐私与安全性->安全性->运行本次打开运行电脑权限设置(允许运行任何来源软件): 1、打开电脑终端软件(可以在启动台搜索或者 command + 空格使用聚焦搜索打开终端) 2、 在终端中复制下方指令粘贴回车运行一下 sudo spctl --master-disable 软件损坏修复引导 如软件显示已损坏,我们先进行上面的操作,然后打开安装包内的软件修复引导程序,按照引导修复即可 如软件修复引导打不开也可以手动修复,如下: 打开电脑终端软件(可以在启动台搜索或者 command + 空格使用聚焦搜索打开终端)在终端中复制下方两个指令各自粘贴回车运行一下 sudo xattr -rd com.apple.quarantine /Applications/植物大战僵尸:融合版.app sudo codesign --sign - --force --deep /Applications/植物大战僵尸:融合版.app 到这就可以回到启动台正常打开运行此游戏了,祝您玩的开心~

Python 3 使用 write()、writelines() 函数写入文件

1 使用 write() 函数,将字符串(或字节串,仅适用写入二进制文件中)写入文件中。 with open('example.txt','w',encoding='utf-8') as f: f.write('春夜喜雨\n') f.write('杜甫 [唐代]\n') f.write('好雨知时节,当春乃发生。\n') f.write('随风潜入夜,润物细无声。\n') f.write('野径云俱黑,江船火独明。\n') f.write('晓看红湿处,花重锦官城。\n') # example.txt ''' 春夜喜雨 杜甫 [唐代] 好雨知时节,当春乃发生。 随风潜入夜,润物细无声。 野径云俱黑,江船火独明。 晓看红湿处,花重锦官城。 ''' 2 使用 writelines() 函数,将字符串列表写入文件中。 with open('examplelines.txt','w',encoding='utf-8') as f: lines = [ '春夜喜雨\n', '杜甫 [唐代]\n', '好雨知时节,当春乃发生。\n', '随风潜入夜,润物细无声。\n', '野径云俱黑,江船火独明。\n', '晓看红湿处,花重锦官城。\n'] f.writelines(lines) # examplelines.txt ''' 春夜喜雨 杜甫 [唐代] 好雨知时节,当春乃发生。 随风潜入夜,润物细无声。 野径云俱黑,江船火独明。 晓看红湿处,花重锦官城。 ''' 其他: # 一个语句可以操作多个文件句柄。 with open(r'read.txt', mode='r', encoding='utf-8') as f1, open(r'write.txt', mode='w', encoding='utf-8') as f2: print(f1.

【postgresql初级使用】用户与角色的关系,搭建数据库安全体系中的分权管理

用户角色管理 ​专栏内容: postgresql使用入门基础手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 用户角色管理概述 信息查看 查看用户信息查看角色信息 创建删除 创建角色删除角色创建和删除用户 案例 场景分析管理员用户创建管理员用户创建数据库创建业务表创建角色创建用户 数据导入业务数据分析业务 总结 结尾 概述 在数据库中有一套严格的访问控制策略,它是基于数据库用户,也就是说一个数据库对象,如database,可以给不同用户没的访问权限,如用户user1,有只读访问权限,用户user2有创建表的权限等等,通过这一套访问权限来保证数据的安全。 在postgresql中,访问数据的前提是以用户的形式登陆数据库,不同的用户被赋予不同的权限。拥有相同权限的一组用户,可以被标记为同一种角色,这与现实社会是类似的,如保管员角色,工人角色,它们访问生产资料的权限和使用方式也是不同的。 本节就来分享一下postgresql中用户(user),角色(role)的用法,以及它们的特点。 信息查看 在postgresql数据库中,如何查看已经存在的用户和角色呢,以及不同用户和角色有什么样的权限,下面我们分别来看一下。 查看用户信息 用户信息存储在pg_user这张系统视图中,用户都可以查看。 postgres=> select * from pg_user; usename | usesysid | usecreatedb | usesuper | userepl | usebypassrls | passwd | valuntil | useconfig ----------+----------+-------------+----------+---------+--------------+----------+----------+------------------------ postgres | 10 | t | t | t | t | ******** | | senllang | 16682 | f | f | f | f | ******** | | {search_path=senlleng} (2 rows) 可以看到有两个用户,一个是当前登陆的senllang用户,另一个是postgres是数据库的管理员账户,是在集簇创建时创建的,是默认的超级管理员;它们在数据库内部使用的是usersysid来标识。

华为HCIP Datacom H12-821 卷25

1.单选题 Smurf攻击一般使用以下哪种协议 A、TCP B、BGP C、ICMP D、DHCP 正确答案: C 解析: Smurf攻击是一种病毒攻击,以最初发动这种攻击的程序“Smurf”来命名。这种攻击方法结合使用了IP欺骗和ICMP回复方法使大量网络传输充斥目标系统,引起目标系统拒绝为正常系统进行服务。 2.多选题 关于RP,下面说法正确的是 A、PIM-SM网络中RP只能通过手工指定 B、RP是由BSR路由器选举出来的 C、PIM-SM网络中所有路由器都需要知道RP的位置 D、RP是RPT树的树根 正确答案: C,D 解析: RP可以动态选举,是由C-RP选出的,BSR动态维护信息,所有路由器都得知道RP的位置,而且在一开始把组播流拉下来的过程中,RPT承担重要的角色。 3.多选题 在VRF操作系统中,以下哪些选项的配置可以进入OSPF区域0的视图? A、[Huawei-ospf-1]area 0 B、[Huawei-ospf-1]area 0 enable C、[Huaweilospf area o D、[Huawei-ospf-1]area 0.0.0.0 正确答案: A,D 解析: 无需解析 4.多选题 下列关于BFD检测模式说法正确的是 A、异步模式是常用的BFD检测模式 B、异步检测模式不支持回声功能 C、在查询模式下,一旦BFD会话建立系统就不再周期性发送BFD控制报文 D、在异步模式下,系统之间会按照协商好的周期发生BFD控制报文,如果某个系统在检测时间内没有收到对端发来的BFD控制报文,就宣告BFD会话的状态为Down 正确答案: A,C,D 解析: 以异步模式运行的路由器周期性地发送BFD控制报文,如果在检测时间内没有收到BFD控制报文则将会话down。无 BFD回声功能即BFD Echo,是由本地发送BFD Echo报文,远端系统将报文环回的一种检测机制。BFD Echo包括被动Echo和单臂Echo,两种功能检测机制一样且只适用于单跳IP链路,但是适用的场景不同。 被动Echo功能:两台设备直接相连,且已经建立了异步模式的BFD会话(请参见BFD检测机制),其中一台设备上使能主动Echo功能,另一台设备上使能被动Echo功能后,两台设备会进入异步Echo模式,分别向对端发送BFD报文。使能被动Echo功能前,异步模式下的BFD只能采用较弱端的检测时间间隔;而使能了被动Echo功能后,可以实现链路的快速检测。 5.多选题 关于BGP公认任意属性,下面哪些描述是正确的 A、不要求必须存在于Update消息中,可以根据具体情况来决定是否添加到Update消息中 B、必须在BGP邻居间传递 C、所有BGP路由器都必须识别 D、可以不必在BGP邻居间传递 正确答案: A,C,D 解析: 公认任意,BGP路由器必须能识别,但可以不携带。 6.多选题 以下BGP属性中,哪些是公认必遵类型的属性? A、Community B、Origin C、AS_Path D、Next_hop E、Local_Pref 正确答案: B,C,D