Stable Diffusion 解析:探寻 AI 绘画背后的科技神秘

AI 绘画发展史 在谈论 Stable Diffusion 之前,有必要先了解 AI 绘画的发展历程。 早在 2012 年,华人科学家吴恩达领导的团队训练出了当时世界上最大的深度学习网络。这个网络能够自主学习识别猫等物体,并在短短三天时间内绘制出了一张模糊但可辨识的猫图。尽管这张图片很模糊,但它展示了深度学习在图像识别方面的潜力。 到了 2014 年,加拿大蒙特利尔大学的谷歌科学家 Ian Goodfellow 提出了生成对抗网络 GAN 的算法,这一算法一度成为 AI 生成绘画的主流方向。GAN 的原理是通过训练两个深度神经网络模型——生成器 Generator 和判别器 Discriminator ,使得生成器能够生成与真实数据相似的新数据样本,并且判别器可以准确地区分生成器生成的假样本和真实数据。GAN 的核心思想是博弈,生成器试图欺骗判别器,而判别器则努力辨别真伪,二者相互对抗、相互协作,最终实现高质量的数据生成效果。 2016 年,基于 GAN 的第一个文本到图像模型 GAN-INT-CLS 问世,证明了 GAN 在从文本生成图像方面的可行性,为各类基于 GAN 的有条件图像生成模型的涌现打开了大门。然而,GAN 在训练过程中很容易出现不稳定或崩溃的情况,因此难以大规模应用。 同年 10 月,NVIDIA 提出了 ProgressiveGAN,通过逐渐增加神经网络规模生成高分辨率图像,从而降低了模型训练难度并提高了生成质量,为后来的 StyleGAN 的崛起铺平了道路。 2017 年,谷歌发表了著名论文《Attention Is All You Need》,提出了 Transformer 结构,随后在自然语言处理领域大放异彩;虽然 Transformer 是为了解决自然语言处理问题而设计的,但它在图像生成领域也显示了巨大的潜力。2020 年,他们又提出了 ViT 概念,尝试用 Transformer 结构替代传统的卷积神经网络 CNN 结构在计算机视觉中的应用。 2020 年出现了转折。加州大学伯克利分校提出了众所周知的去噪扩散概率模型 DDPM,简化了原有模型的损失函数,将训练目标转变为预测当前步添加的噪声信息,极大降低了训练难度,并将网络模块由全卷积网络替换为 Unet,提升了模型的表达能力。 2021 年 1 月,OpenAI 发布了基于 VQVAE 模型的 DALL-E 和 CLIP 模型 Contrastive Language-Image Pre-Training,它们分别用于文本到图像生成和文本与图像之间的对比学习。这让 AI 似乎第一次真正“理解”了人类的描述并进行创作,激发了人们前所未有的对 AI 绘画的热情。2021 年 10 月,谷歌发布的 Disco Diffusion 模型以其惊人的图像生成效果拉开了扩散模型的时代序幕。

MySQL-触发器(TRIGGER)

文章目录 1. 触发器是什么?2. 触发器的优缺点3. 触发器的类型3.1 INSERT触发器3.2 UPDATE触发器3.3 DELETE触发器 4. 触发器的相关语法4.1 创建触发器4.2 查看触发器4.3 删除触发器 1. 触发器是什么? 定义:MySQL 的触发器和存储过程一样,都是嵌入到 MySQL 中的一段程序,是 MySQL 中管理数据的有力工具。通过对数据表的相关操作来触发、激活从而实现执行。比如当对 student 表进行操作( INSERT, DELETE 或 UPDATE)时就会激活它执行。作用:触发器与数据表关系密切,主要用于保护表中的数据。特别是当有多个表具有一定的相互联系的时候,触发器能够让不同的表保持数据的一致性、日志记录 , 数据校验等操作。 2. 触发器的优缺点 触发器的优点如下: 触发器的执行是自动的,当对触发器相关表的数据做出相应的修改后立即执行。触发器可以实施比 FOREIGN KEY 约束、CHECK 约束更为复杂的检查和操作。触发器可以实现表数据的级联更改,在一定程度上保证了数据的完整性。 触发器的缺点如下: 使用触发器实现的业务逻辑在出现问题时很难进行定位,特别是涉及到多个触发器的情况下,会使后期维护变得困难。大量使用触发器容易导致代码结构被打乱,增加了程序的复杂性,如果需要变动的数据量较大时,触发器的执行效率会非常低。 3. 触发器的类型 在实际使用中, MySQL 所支持的触发器有三种: INSERT 触发器、 UPDATE 触发器和 DELETE 触发器。 使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语句级触发。 触发器类型NEW 和 OLDINSERT 型触发器NEW 表示将要或者已经新增的数据UPDATE 型触发器OLD 表示修改之前的数据 , NEW 表示将要或已经修改后的数据DELETE 型触发器OLD 表示将要或者已经删除的数据 3.1 INSERT触发器 在 INSERT 语句执行之前或之后响应的触发器,使用 INSERT 触发器需要注意以下几点:

解决android studio build Output中文乱码

1.效果如下所示: 代码运行报错的时候,Build Output报的错误日志中中文部分出现乱码,导致看不到到底报的什么错。 2.解决办法如下: 点击Android studio开发工具栏的Help-Edit Custom VM Options....,Android studio会打开studio64.exe.vmoptions文件,在文件中添加-Dfile.encoding=UTF-8,然后点击File- Invalidate Caches / Restart.... 关闭并重启Android studio。 3.最终结果: 运行项目,乱码没有了,可以正常查看错误信息了

MySql下载及安装教程

MySql介绍 MySQL是一种开源的关系型数据库管理系统(RDBMS),它是由瑞典MySQL AB公司开发的,后来被Sun Microsystems收购,再后来被Oracle收购。MySQL以其高性能、可靠性和易用性而闻名,并且广泛应用于各种规模的应用程序和网站。 以下是MySQL的一些特点和功能: 数据库管理:MySQL可以用于创建、管理和维护数据库。它支持多个数据库,并提供了丰富的管理工具和命令行接口。数据存储:MySQL使用表来组织数据,并支持多种数据类型,包括整数、浮点数、字符串、日期等。它还支持索引和约束,以提高数据的查询和完整性。数据查询:MySQL提供了强大的查询语言(SQL),可以用于检索和操作数据库中的数据。它支持复杂的查询操作,如联接、子查询和聚合函数等。数据安全:MySQL提供了多层次的安全机制,包括用户认证、访问控制和数据加密等。管理员可以为每个用户分配不同的权限,以保护数据的安全性。扩展性:MySQL可以轻松地扩展以处理大量数据和高并发访问。它支持主从复制、分区和集群等技术,以提高系统的性能和可用性。开发者友好:MySQL提供了多种编程接口和驱动程序,如JDBC、ODBC和PHP等,以便开发人员可以方便地与数据库进行交互。 总的来说,MySQL是一种功能强大、易于使用和可靠的关系型数据库管理系统,适用于各种规模的应用程序和网站。 一、下载MySQl 打开MySql官网的下载页面: https://www.mysql.com/downloads。 然后点击如图位置MySQL Community (GPL) Downloads 进入MySql社区版下载页面。 然后点击MySQL Community Server ,进入了MySQL社区版服务器下载页面,根据自己的设备下载匹配的版本即可。(会有自动匹配) 点击Download, 点击:No thanks, just start my download.即可开始下载安装包了 二、安装MySQL 点击下载下来的dmg安装包 一路点击继续到Configuration,Configuration选择“Use Legacy Password Encryption”,然后点击Next。 然后设置MySQL的登录密码,建议设置简单一些的8位数以上的密码,然后一定要记住这个密码,然后点击Finish。 提示安装完毕,点击关闭。 打开系统设置,拖到最下方,找到MySQL,双击后有如图所示的两个绿色的小圆形,代表安装成功。 三、配置MySQL 启动终端,输入 vim ~/.zshrc 然后按下 i 键,输入 #mysql export MYSQL_HOME=/usr/local/mysql export PATH=$MYSQL_HOME/bin:$PATH 按esc键退出Insert模式,然后在英文输入法下输入,退出并保存 :wq 然后在终端通过如下代码执行此配置文件。 % source ~/.zshrc 执行完以上命令之后,查看MySql版本 % mysql --version 输出mysql 版本即代表已经安装配置成功。 XXXX@XXXX-Pro ~ % mysql --version mysql Ver 8.0.33 for macos13.3 on arm64 (Homebrew) 四、进入MySQL 输入命令:

Python实现时间序列分析动态因子模型(DynamicFactor算法)项目实战

说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。 1.项目背景 动态因子模型(Dynamic Factor Models, DFM)是一种统计学和计量经济学中用于处理大量相关时间序列数据的建模框架。在DFM中,模型试图捕捉影响多个经济变量或观测值的一组不可观测的、共同变动的核心驱动力,这些驱动力被称为“因子”。这些因子通常代表了宏观经济活动的基本趋势、周期性波动或其他系统性的影响因素。通过估算因子及其对各个变量的影响系数,DFM可以简化高维数据并提取其中的主要信息。 本项目通过DynamicFactor算法来构建时间序列分析动态因子模型。 2.数据获取 本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下: 编号 变量名称 描述 1 DATE 日期 2 indprod 工业生产指数 3 income 国民收入 4 sales 销售额 5 emp 就业人数 数据详情如下(部分展示): 3.数据预处理 3.1 用Pandas工具查看数据 使用Pandas工具的head()方法查看前五行数据: 关键代码: 3.2 数据缺失查看 使用Pandas工具的info()方法查看数据信息: 从上图可以看到,总共有4个变量,数据中无缺失值,共432条数据。 关键代码: 3.3 数据描述性统计 通过Pandas工具的describe()方法来查看数据的平均值、标准差、最小值、分位数、最大值。 关键代码如下: 4.探索性数据分析 4.1 变量直方图 用Matplotlib工具的hist()方法绘制直方图: 从上图可以看到,变量主要集中在45~100之间。 4.2 相关性分析 从上图中可以看到,数值越大相关性越强,正值是正相关、负值是负相关。 4.3 变量折线图 4.4 数据标准化 5.构建动态因子模型 主要使用DynamicFactor算法,用于时间序列分析动态因子模型。 5.1 构建模型 编号 模型名称 参数 1 动态因子模型 k_factors=1 2 factor_order=2 3 error_order=2 5.2 模型摘要信息 6.

SpringBoot 中yml配置文件:定义list集合、数组及注意事项

1.在平时的yml配置文件中,我们经常使用到配置基本数据类型的字符串,比如配置日志文件的写法如下: # 配置日志输出级别 logging: # 指定logback配置文件的位置 config: classpath:logback-spring.xml # 文件日志要输出的路径 path: E:/logs/springboot_server # 日志的输出级别 level: root: info 获取属性值的话可以通过@value 注解来实现,如下: @Value("${logging.path}") private String path; // 获取日志文件的输出路径 2.下面说一下如何在yml配置文件中定义list集合、对象集合、数组以及map集合等 2.1定义list集合 # 拦截器路径拦截或者不拦截配置 interceptorconfig: path: #该路径下任何类型请求均拦截 include: - /api/v1/token/api_token - /api/v1/yibaotong/save 或者写成 # 拦截器路径拦截或者不拦截配置 interceptorconfig: path: #该路径下任何类型请求均拦截 include: [/api/v1/token/api_token,/api/v1/yibaotong/save] 这里需要注意的是,定义list集合不能用@value注解来获取list集合的所有值,需要定义一个配置类bean,然后使用 @ConfigurationProperties注解来获取list集合值,做法如下: @Data @Component @ConfigurationProperties(prefix = "interceptorconfig.path") // 配置文件的前缀 public class InterceptorPathBean { /* * 需要拦截的路径 */ private List<String> include; } 如果使用@value注解会报错; 2.2 定义对象list集合,首先创建一个user对象如下:

Adobe Photoshop 2024 25.5 Win/Mac PS2024最新版功能介绍

Adobe Photoshop 2024,简称PS,目前最强的图片处理合成软件,PS提供了广泛的工具和功能,包括画笔、铅笔、颜色替换、混合器画笔等绘画工具,以及裁剪、透视变形、智能修复画笔等编辑工具。用户可以使用这些工具进行图片编辑、合成、校色、抠图等操作,实现各种视觉效果。 PS还支持各种插件和扩展,可以与其他软件无缝集成,如Adobe Bridge、Lightroom等。这使得PS成为一个完整的创意工作流程解决方案,适用于摄影师、设计师、图形艺术家等各类创意工作者。 Adobe Photoshop是一个广泛应用于图像处理和创意领域的软件,能够帮助用户完成各种复杂的图像处理任务,提高工作效率和创造力。 软件安装 不论任何系统Mac或者Win都要首先增加hosts联网规则 -Win版本解压,直接运行autopay.exe开始安装, 如果安装错误,或者出现其他问题,删除以下两个文件夹,重新安装即可 C:\Program Files (x86)\Common Files\Adobe\SLCache C:\ProgramData\Adobe\SLStore 安装完成后自动激活,附带一个激活补丁,在激活失效的时候可用 Mac安装教程 如果提示文件损坏,或者未知的开发者:打开Mac终端 输入以下代码回车sudo spctl --master-disable此命令是为了打开系统的任何来源选项(运行后会提示输入密码,直接输入即可,输入过程不显示,输完后直接回车确定) 注意:首先添加上面的hosts规则到系统中 1.直接安装文件夹中的PS25.4;(最好使用右击,选择打开) 注意!!!如果提示没有权限或者损坏,把安装文件拖到桌面,运行以下命令. sudo spctl --master-disable sudo xattr -rd com.apple.quarantine 空格, 把桌面刚刚的安装程序拖进终端,回车执行,输入密码,密码输入不显示,直接回车就好,之后再运行桌面补丁好的安装包 如图 2.在安装过程中提示选择语言,选择需要的语言即可,之后弹出的提示点击Close即可;软件安装完成后自动激活,使用即可; 注意,软件在安装过程中Adobe Photoshop 2024 25.4会自动打开一次,不需要任何操作,等待它自动关闭即可;

怎么降低AIGC论文检测

在学术领域,AIGC论文检测已成为每位研究者和学生必须面对的挑战。面对这一检测,许多人都感到困惑和焦虑,因为一旦论文被检测出重复,就可能面临学术不端的指控。那么,如何降低AIGC论文检测率,确保论文的独特性和原创性呢? 1. 深入理解AIGC检测原理 首先,了解AIGC论文检测的原理至关重要。AIGC通常基于文本比对和算法分析,检测论文中的重复内容和引用情况。因此,我们需要明白什么样的内容容易被检测出来。 2. 合理引用与避免抄袭 在撰写论文时,合理的引用是必要的。但要避免直接复制粘贴他人的内容,而是要用自己的话重新表述,同时注明出处。 3. 使用同义词和句式变化 为了降低重复率,可以使用同义词替换关键词,同时改变句式结构,这样可以有效避免被AIGC检测出来。 4. 增加原创内容和思考 在论文中加入自己独特的见解和分析,不仅可以增加论文的深度,还能降低重复率。 5. 使用检测工具进行自查 在写作过程中,可以使用一些AIGC论文检测工具进行自查,以便及时发现并修改重复内容。 6. 请教专业人士和同行 如果遇到写作困难或不确定的地方,可以请教专业人士或同行,他们可以提供有价值的建议和帮助。 7. 遵循学术规范和诚信原则 最重要的是,要始终遵循学术规范和诚信原则,避免任何形式的学术不端行为。 综上所述,降低AIGC论文检测率需要我们深入理解检测原理,合理引用和避免抄袭,使用同义词和句式变化,增加原创内容和思考,使用检测工具自查,请教专业人士和同行,以及遵循学术规范和诚信原则。只有这样,我们才能确保论文的独特性和原创性,顺利通过AIGC论文检测。

PyFlink核心知识点

1. 核心概念 1.1. job执行流程 四层 说明 备注 SteamGraph 代码生成的最初的图 表示程序的拓扑结构 JobGraph 将多个符合条件的节点,链接为一个节点 可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗 ExecutionGraph JobGraph的并行化版本 是调度层最核心的数据结构 PhysicalGraph JobManager根据ExecutionGraph对Job进行调度后,在各个TaskManager上部署Task后形成的图 并不是一个具体的数据结构 首先,用户通过api开发的代码,会被flink任务提交客户端生成SteamGraph;然后,客户端将SteamGraph加工成jobGraph。对SteamGraph中将多个符合条件的节点,链接为一个节点;然后,客户端将jobGraph提交到到集群JobManager,JobManager将其转化为ExecutionGraph(并行化后的执行图);最后 ,ExecutionGraph中的各个task会以多并行示例(subTask)部署到taskManager上去执行(subTask运行的位置是taskManager提供的槽位(slot),槽位简单理解就是线程),实际运行的图就是PhysicalGraph。 1.2. task 通俗地理解,task就是一段代码逻辑。一个task中可以封装一个算子的计算逻辑,也可以封装多个算子的计算逻辑。 1.3. subTask task的运行实例(线程),是任务调度的最小单位。 1.4. Task Slots 在 TaskManager 中资源调度的最小单位是 task slot。TaskManager 中 task slot 的数量表示并发处理 task 的数量;task slot只隔离内存,不隔离cpu。 一个task slot 中可以执行多个算子,即多个算子可以被绑定到一个task中。这取决于于3个条件: 上下游算子是one to one 传输;上下游算子并行度相同;上下游算子属于相同的slotSharingGroup(槽位共享组)。 一个task slot 中可以运行多个不同task的各自的一个并行实例同一个task的多个并行实例,不能放在同一个task slot中 一个job中并行度最大的那个task的并行度 <= 可用槽位数 2. Stream API 2.1. sources 2.1.1. 自定义source add_source()方法支持添加在java中定义的SourceFunction,实现方案如下: 使用java api 自定义 SourceFunction 可以定义单并行度、多并行度source

macOS安装Python&&Pycharm详解!保姆级教程,一学就会!

1. 下载Python 有需要打包好的Pycharm&&Python激活码和安装包也可直接扫下方 首先登陆python官网:www.python.org/ 点击Download按钮,选择自己电脑的系统,有些时候网页可以自动识别 下载最新的python 版本号是随着版本发展不断演进,上图中显示3.12.2。但都是python3 等待下载完成,打开文件,一直点击继续直到安装成功 管理员输入用户名和密码 打开自己电脑终端验证是否安装成功 从访达->前往->实用工具->终端 输入python3出现以下字段表示安装成功。 ~ % python3 Python 3.12.2 (v3.12.2:6abddd9f6a, Feb 6 2024, 17:02:06) [Clang 13.0.0 (clang-1300.0.29.30)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> 如果出现其他版本也不要惊慌,可能以前安装过其他版本,输入python3.12即可 2. 安装pycharm 登陆pycharm官网:www.jetbrains.com.cn/en-us/pycha… 点击下载可以自动识别目前的系统,有两个版本可以选择 PyCharm Professional 专业版(收费,大学生可以申请免费licen)PyCharm Community Edition 社区版 (免费且学习够用) 安装 打开 安装成功后续再进行下一步学习 ---------------------------END--------------------------- 题外话 感谢你能看到最后,给大家准备了一些福利! 感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。 👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击) 一、Python所有方向的学习路线 Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。 二、Python兼职渠道推荐* 学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费. 三、最新Python学习笔记 当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。 四、实战案例 纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。 👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击) 若有侵权,请联系删除

【IOS】启动报错Cannot launch ‘/private/var/containers/Bundle/Application/....‘

问题 IOS项目启动报错Cannot launch ‘/private/var/containers/Bundle/Application/***.app’: Sending qLaunchSuccess packet failed 或者类似报错问题 无法启动launch的 解决 问题定位 我是在操作期间更换了应用的签名证书 也就是Signing & Capablities -> Signing 个人怀疑是还了证书后某些配置未能加载出来 尝试使用Command+shift+K清理缓存后再次启动仍然失败 解决方法 最后在进行XCode大退+Command+shift+K清理缓存后再次启动就成功了 重要的是:XCode要大退,完全退出重新启动 end

SQL中的 CASE WHEN用法详解

SQL中的 CASE WHEN用法详解 目录 SQL中的 CASE WHEN用法详解1. 基本用法2. 举例3. 使用 CASE WHEN 语句进行数据分组4. 使用 CASE WHEN 语句修改字段值5. CASE WHEN 和 聚合函数 一起使用6. CASE WHEN 的嵌套使用总结:end 在 SQL 中, CASE WHEN 语句通常用于根据条件执行不同的操作。 1. 基本用法 SELECT CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END AS alias_name FROM table_name; CASE 开始一个 CASE WHEN 语句块,END 结束该块。按顺序检查每个条件,并在找到第一个为真的条件时返回相应的结果。如果没有条件为真,则返回 ELSE 部分的默认结果(可选)。允许在 WHEN 子句中使用表达式作为条件,而不仅仅是列或单个值。 2. 举例 根据学生的成绩, 分为 A B C 和 D 四个等级, A: 大于等于90; B: [80,90); C: [60,80); D:小于60; -- 数据准备 WITH t_score_info AS ( -- 员工信息表 SELECT * FROM ( VALUES (1001, 'lyf', 83), (1002, 'zyb', 72), (1003, 'whl', 45), (1004, 'lxm', 64), (1005, 'szy', 92), (1006, 'xjp', 31), (1007, 'ply', 42), (1008, 'wyb', 88), (1009, 'spx', 72), (1010, 'yjj', 88), (1011, 'teg', 98), (1012, 'hxj', 61) ) AS table_name(user_id, name, score) ) -- CASE WHEN 使用 SELECT user_id, name, score , CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 AND score < 90 THEN 'B' WHEN score >= 60 AND score < 80 THEN 'C' ELSE 'D' END AS grades FROM t_score_info ; user_idnamescoregrades1011teg98A1005szy92A1008wyb88B1010yjj88B1001lyf83B1002zyb72C1009spx72C1004lxm64C1012hxj61C1003whl45D1007ply42D1006xjp31D 3.

向量数据库PGVECTOR,AI浪潮下崛起的新秀!

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜😜😜 中国DBA联盟(ACDU)成员,目前服务于工业互联网 擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。 ✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞 ❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️ 文章目录 📣 1.序言📣 2.向量数据库📣 3.向量插件PGVECTOR📣 4.PGVECTOR安装📣 5.PGVECTOR实践✨ 5.1 知识检索✨ 5.2 距离定位 📣 6.优势和不足📣 7.总结 向量数据库因为可以为大模型提供记忆而需求倍增,随着AI的热潮开始崭露头角,本文也聚焦于被 AI 炒火了的向量数据库,介绍什么是向量数据库,以及以插件形式存在的 pgvector,与PostgreSQL 强强联合,成为AI浪潮下的崛起新星。 📣 1.序言 自从OpenAI推出了全新的对话式通用人工智能工具——ChatGPT,ChatGPT 表现出了非常惊艳的语言理解、生成、知识推理能力,ChatGPT 的横空出世拉开了大语言模型产业和生成式AI产业蓬勃发展的序幕,大模型作为新一代的AI处理器,提供了数据处理能力;而向量数据库提供了存储能力,成为大模型时代的重要基座。 📣 2.向量数据库 数据库有事务处理(OLTP)与数据分析(OLAP)两大核心场景,向量数据库自然也不例外。典型的事务处理场景包括:知识库,问答,推荐系统,人脸识别,图片搜索,等等等等。知识问答:给出一个自然语言描述的问题,返回与这些输入最为接近的结果;以图搜图:给定一张图片,找出与这张图片在逻辑上最接近的其他相关图片。 这些功能说到底都是一个共同的数学问题:向量最近邻检索(KNN):给定一个向量,找到距离此向量最近的其他向量。 向量数据库的主要应用场景: 1.人脸识别 向量数据库可以存储大量的人脸向量数据, 并通过向量索引技术实现快速的人脸识别和比对。 2.图像搜索 向量数据库可以存储大量的图像向量数据, 并通过向量索引技术实现快速的图像搜索和相似度匹配。 3.音频识别 向量数据库可以存储大量的音频向量数据, 并通过向量索引技术实现快速的音频识别和匹配。 4.自然语言处理 向量数据库可以存储大量的文本向量数据, 并通过向量索引技术实现快速的文本搜索和相似度匹配。 5.推荐系统 向量数据库可以存储大量的用户向量和物品向量数据, 并通过向量索引技术实现快速的推荐和相似度匹配。 6.数据挖掘 向量数据库可以存储大量的向量数据, 并通过向量索引技术实现快速的数据挖掘和分析。 📣 3.向量插件PGVECTOR 在所有现有向量数据库中,pgvector是一个独特的存在 —— 它选择了在现有的世界上最强大的开源关系型数据库 PostgreSQL 上以插件的形式添砖加瓦,而不是另起炉灶做成另一个专用的“数据库” pgvector有着优雅简单易用的接口,不俗的性能表现,更是继承了PG生态的超能力集合。 pgvector 是一个基于 PostgreSQL 的扩展,为用户提供了一套强大的功能,用于高效地存储、查询和处理向量数据。它具有以下特点: 直接集成:pgvector 可以作为扩展直接添加到现有的 PostgreSQL 环境中,方便新用户和长期用户获得矢量数据库的好处,无需进行重大系统更改。

Android AppCompatActivity 方法详解

在 Android 开发中,AppCompatActivity 是一个常用的类,它提供了对新版 Android 特性在旧版 Android 上的兼容支持。作为 Android 支持库的一部分,它通常被用作活动(Activity)的基类。下面我们将介绍 AppCompatActivity 下的所有方法,并说明它们的主要用途。 AppCompatActivity AppCompatActivity 是支持库中的一个类,用于兼容新版 Android 特性。 initDelegate 该方法用于初始化处理窗口特性的委托,如操作栏。 attachBaseContext 当将活动附加到上下文时调用,允许您在整个活动中使用之前修改上下文。 setTheme 为活动设置主题。应在调用 setContentView() 之前调用,以确保主题正确应用。 onPostCreate 在 onCreate() 完成后调用,通常用于在活动创建后进行初始设置。 getSupportActionBar 获取此活动的操作栏对象。操作栏是活动窗口顶部的可自定义工具栏。 setSupportActionBar 设置一个 Toolbar 作为此活动的操作栏,以便自定义操作栏的布局和功能。 getMenuInflater 返回一个 MenuInflater 对象,用于将菜单 XML 文件填充到菜单对象中。 setContentView 设置活动的内容视图。通常是定义活动用户界面的布局文件。 addContentView 向活动添加额外的内容视图。可以用来叠加额外的 UI 元素在主内容视图上。 onConfigurationChanged 在设备配置更改时调用,例如屏幕方向更改。 onPostResume 在活动暂停后重新开始时调用,通常用于重新初始化在暂停时释放的资源。 onStart 活动变得对用户可见时调用。 onStop 当活动对用户不再可见时调用。 findViewById 根据 ID 在活动布局中查找视图。 onMenuItemSelected 当用户选择菜单项时调用。 onDestroy 当活动被销毁时调用,通常用于释放活动持有的资源。 onTitleChanged 当活动标题发生变化时调用。 supportRequestWindowFeature 请求在窗口中启用或禁用某个功能。 supportInvalidateOptionsMenu 使选项菜单无效,导致重新调用 onCreateOptionsMenu()。

redis报错WRONGTYPE Operation against a key holding the wrong kind of value

Redis的错误"WRONGTYPE Operation against a key holding the wrong kind of value"通常意味着你正在尝试对一个类型不匹配的键执行操作。Redis中的每个键都有一个相关联的类型,如字符串,列表,集合,有序集合,或哈希。 例如,如果你有一个字符串类型的键,然后尝试对其执行列表,集合或哈希的操作,就会遇到这个错误。比如,你不能对一个字符串类型的键执行 LPUSH或 SADD命令,因为这些命令是为列表和集合类型的键设计的。 解决这个问题的方法是检查你的代码,确保你对每个键使用的命令与该键的类型匹配。你可以使用 TYPE命令来确定一个键的类型。例如,TYPE mykey将返回 mykey的类型。

Java HotSpot(TM) 64-Bit Server VM warning_ Sharing is only supported for boot loader classes because

今天在学习freemarker静态化页面的时候遇到了这个错误: Java HotSpot™ 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 最终我找到了解决办法 解决办法原帖:https://stackoverflow.com/questions/65613084/java-hotspottm-64-bit-server-vm-warning-sharing-is-only-supported-for-boot-lo 您只需在代码编辑器配置的 VM 选项中包含 -Xshare:off 即可,也就是运行/调试配置 -> 编辑配置模板 -> 添加虚拟机选项 -Xshare:off 1. 2. 勾上Add VM options,点击apply 3.在后面填上 -Xshare:off 4.再次运行 就解决了 ❤️❤️❤️❤️❤️❤️

算法沉淀——动态规划之回文串问题(上)(leetcode真题剖析)

算法沉淀——动态规划之回文串问题 01.回文子串02.最长回文子串03.分割回文串 IV04.分割回文串 II05.最长回文子序列06.让字符串成为回文串的最少插入次数 01.回文子串 题目链接:https://leetcode.cn/problems/palindromic-substrings/ 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 示例 1: 输入:s = "abc" 输出:3 解释:三个回文子串: "a", "b", "c" 示例 2: 输入:s = "aaa" 输出:6 解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa" 提示: 1 <= s.length <= 1000s 由小写英文字母组成 思路 预处理回文信息: 创建一个 dp 表,其中 dp[i][j] 表示字符串 s 中子串 s[i:j+1] 是否是回文串。 状态转移方程: 对于回文串,分析两头的元素: 如果 s[i] != s[j],则不可能是回文串,dp[i][j] = 0; 如果 s[i] == s[j] ,则根据长度分三种情况讨论:

java初始化list并赋值怎么操作

1:使用Lists.newArrayList var list = Lists.newArrayList(0, 1); 2:使用ArrayList类的构造函数add List<String> list= new ArrayList<String>() { { this.add("item1"); this.add("item2"); this.add("item3"); } }; 3:使用ArrayList类的构造函数 List<String> list = new ArrayList<>(Arrays.asList("item1", "item2", "item3")); 这种方法使用了ArrayList类的构造函数,通过Arrays.asList()方法将元素转换为List,并将其作为构造函数的参数传入,从而初始化并赋值给List。 4:使用Collections工具类的addAll()方法 List<String> list = new ArrayList<>(); Collections.addAll(list, "item1", "item2", "item3"); 这种方法使用了Collections工具类的addAll()方法,将元素逐个添加到List中,实现初始化并赋值的操作。 5:使用Java 9的List.of()方法 List<String> list = List.of("item1", "item2", "item3"); 这种方法是在Java 9中引入的新特性,使用List.of()方法可以直接初始化并赋值给List,简洁方便。 6:使用Java 8的Stream API List<String> list = Stream.of("item1", "item2", "item3").collect(Collectors.toList()); 这种方法使用了Java 8的Stream API,通过Stream.of()方法创建一个流,然后使用collect(Collectors.toList())方法将流中的元素收集到List中,实现初始化并赋值的操作。

从新手到专家:AutoCAD 完全指南

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 引言 AutoCAD是一款广泛用于工程设计和绘图的专业软件,它可以帮助用户创建精确的二维和三维设计图稿。本文将从零基础开始,逐步引导读者成为AutoCAD 2022的高级用户。 第一部分:初识AutoCAD 1. 介绍AutoCAD AutoCAD是由美国Autodesk公司开发的计算机辅助设计软件,可用于建筑、土木工程、机械设计等领域。作为行业标准之一,AutoCAD提供了丰富的绘图功能和强大的编辑工具,使得用户可以轻松创建精确的二维和三维设计图稿。无论是建筑师、土木工程师还是产品设计师,都可以通过AutoCAD实现其设计创意,并将其转化为现实可行的项目。该软件不仅能够提高设计效率,还能够减少错误并改善沟通,因此在工程设计领域有着广泛的应用。 2. 下载与安装 下载AutoCAD的流程通常包括以下步骤: 访问Autodesk官方网站,找到AutoCAD产品页面。选择适合自己需求的版本,比如专业版或学生版,并点击相关链接进入购买或下载页面。登录Autodesk账户,如果没有账户则需要注册一个新账户。在购买完成后,你会获得下载链接和安装序列号。下载安装程序并运行。在安装过程中,可能需要输入产品密钥或进行其他必要的确认步骤。安装完成后,根据提示进行激活和注册。 第二部分:界面与基本操作 1. 界面介绍 AutoCAD的界面主要由以下几个部分组成: 菜单栏:位于软件顶部,包括文件、编辑、绘图、格式等菜单,提供了大部分功能的入口。工具栏:包含了各种快捷工具按钮,用于执行常用命令,如绘图工具、修改工具、图层管理等。绘图区域:是用户进行实际绘图和编辑操作的主要区域,可以放大、缩小和移动视图以便更好地操作和观察图形。命令窗口:位于屏幕底部,用户可以在这里输入和执行命令,查看命令的提示信息和选项。属性编辑器:用于显示和修改所选对象的属性,如颜色、线型、线宽等。图层管理器:用于管理图层,包括创建新图层、设置图层属性、控制图层的显示与隐藏等。状态栏:显示有关当前绘图环境和所选对象的信息,如坐标位置、图层信息等。 通过熟悉和理解AutoCAD的界面结构,用户可以更高效地使用软件进行绘图和编辑操作。 2. 基本操作 绘图命令:介绍线段、圆、矩形等基本绘图命令的使用方法。修改命令:演示移动、复制、旋转等修改命令的操作步骤。图层管理:讲解如何创建、编辑和管理图层,以及图层的作用。 第三部分:进阶功能与技巧 1. 二维绘图 尺寸标注 在AutoCAD中,添加尺寸标注是非常重要的,可以帮助确定物体的尺寸和位置。以下是一般的步骤: DIM命令:输入DIM命令或点击维度工具栏按钮启动尺寸标注命令。选择对象:选择需要标注尺寸的对象,例如线段、圆等。放置标注:指定尺寸标注的起点和终点位置,系统会自动计算并显示尺寸信息。设置样式:可以通过修改样式来调整尺寸标注的外观,如文字大小、箭头样式等。 多重实体编辑 使用多重实体编辑命令可以快速编辑多个对象,以下是一些常见的多重实体编辑命令: 移动(M) :选择需要移动的对象,指定基准点后输入目标位置即可完成移动。复制(CO) :选择需要复制的对象,指定基准点后输入目标位置即可完成复制。旋转(RO) :选择需要旋转的对象,指定旋转基准点和角度后即可完成旋转操作。镜像(MI) :选择需要镜像的对象,指定镜像线后即可完成镜像操作。 通过掌握这些二维绘图的关键技巧,用户可以更高效地进行二维设计和编辑工作。 2. 三维建模 三维空间介绍 在AutoCAD中,三维空间由X、Y、Z三个坐标轴构成,分别代表宽度、高度和深度。用户可以通过命令来切换视图以查看不同角度的三维模型,例如通过轨迹球或者指定俯视、透视等视图。 三维绘图命令 Extrude(挤出) :通过指定一个封闭区域,在三维空间中创建一个立体模型。用户可以指定挤出的高度来获得所需形状。Loft(放样) :通过指定横截面轮廓来创建两个或多个横截面之间的平滑过渡曲面,用于创建复杂的三维形状。 渲染与材质 渲染:AutoCAD提供了渲染功能,可以将三维模型转化为逼真的图像。用户可以设置光源、阴影和材质等属性,以获得更真实的效果。材质:用户可以为三维模型添加各种材质,如金属、木材、塑料等,使得模型在渲染后呈现出逼真的外观。 掌握这些三维建模的基本概念和常用命令,以及渲染和材质的应用,能够帮助用户更好地进行三维设计和展示工作。 总结 AutoCAD作为一款强大的设计软件,具有广泛的应用前景。通过本文的学习,读者可以从零开始掌握AutoCAD 2022的基本操作和进阶技巧,最终成为一名高级的AutoCAD用户。 ⭐️ 好书推荐 《AutoCAD 2022从小白到高手(微视频版)》 【内容简介】 《AutoCAD 2022从小白到高手(微视频版)》是一本集视频教程和实例讲解于一体的AutoCAD实用教材,书中融合了AutoCAD机械设计、建筑设计、室内设计必备的基础知识。《AutoCAD 2022从小白到高手(微视频版)》以实用为出发点,系统全面地介绍了AutoCAD 2022软件在二维和三维设计方面的应用知识与技巧,力求为读者带来良好的学习体验。全书共18章,内容涵盖AutoCAD 2022基础知识、简单二维绘图命令,基本绘图工具、文本与表格、图形编辑类命令、复杂二维绘图与编辑命令、面域与图案填充、图形标注类命令、块及其属性、辅助绘图工具、外部参照与光栅图像、样板图绘制实例、平面图绘制实例、三维建模基础知识、三维建模类命令、三维模型编辑类命令、三维造型图绘制实例等。 《AutoCAD 2022从小白到高手(微视频版)》具有很强的实用性和可操作性,可作为高等学校相关专业的教材,也可作为计算机绘图技术研究与应用人员的参考书。 📚 京东购买链接:《AutoCAD 2022从小白到高手(微视频版)》

jdk 国内下载镜像地址及安装

java jdk 国内下载镜像地址及安装 java jdk 国内下载镜像地址 (1)TUNA镜像 https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/ (2)HUAWEI镜像 Index of java-local/jdk (3)injdk WEJDK学习站 www.sousou88.com-官网首页