(2023|NIPS,LLaVA-Med,生物医学 VLM,GPT-4 生成自指导指令跟随数据集,数据对齐,指令调优)
LLaVA-Med: Training a Large Language-and-Vision Assistant for Biomedicine in One Day
目录
LLaVA-Med: Training a Large Language-and-Vision Assistant for Biomedicine in One Day
0. 摘要
1. 简介
2. 相关工作
3. 生物医学视觉指令数据
4. 将多模态对话模型适配到生物医学领域
5. 实验
6. 结论
0. 摘要
对话式生成 AI 在赋能生物医学从业者方面展现了巨大潜力,但当前的研究主要集中在单模态文本上。多模态对话 AI 通过利用来自公共网络的数十亿图文对进行训练,取得了快速进展,但此类通用领域的视觉语言模型在理解和讨论生物医学(biomedical)图像方面仍显不足。
本文提出了一种成本高效的训练方法,用于开发一种视觉语言对话助手,可以回答有关生物医学图像的开放式研究问题。我们的核心思路是利用从 PubMed Central 提取的大规模、广覆盖的生物医学图表-标题(figure-caption)数据集,使用 GPT-4 从标题中自指导(self-instruct)生成开放式指令数据,然后通过一种新颖的课程学习方法微调一个大型通用领域的视觉语言模型。
具体而言,模型首先通过图表-标题对直接学习对齐生物医学词汇,然后通过 GPT-4 生成的指令数据学习掌握开放式对话语义,这种方法大致模拟了普通人逐步获取生物医学知识的过程。这使我们能够在不到 15 小时内(使用 8 个 A100 GPU)训练一个用于生物医学的大型语言和视觉助手(LLaVA-Med)。LLaVA-Med 展现了出色的多模态对话能力,能够遵循开放式指令,协助回答有关生物医学图像的 query。在三个标准的生物医学视觉问答数据集上,微调后的 LLaVA-Med 在某些指标上优于之前的监督学习领域的最新技术成果。为了促进生物医学多模态研究,我们将发布我们的指令数据和 LLaVA-Med 模型。
1. 简介
虽然在通用领域中取得了成功,但现有大型多模态模型(LMMs)在生物医学场景中效果较差,因为生物医学图文对与一般网络内容存在显著差异。因此,通用领域的视觉助手可能表现得像普通人,要么避免回答生物医学问题,要么更糟的是,生成错误的回答或完全虚构的内容。尽管生物医学视觉问答(VQA)领域已经取得了许多进展,但以往的方法通常将问题建模为分类任务(例如,在训练集中观察到的不同答案中选择),不适合开放式指令的处理。因此,虽然对话式生成 AI 在生物医学应用中展现了巨大潜力 [19, 30, 18],但现有研究通常局限于单模态文本。
在本文中,我们提出了一个名为 Large Language and Vision Assistant for BioMedicine (LLaVA-Med) 的系统,这是首次尝试将多模态指令调优扩展到生物医学领域,以实现一个生物医学多模态对话助手的端到端训练。领域特定的预训练已被证明对生物医学自然语言处理(NLP)应用 [17, 14, 10, 28] 和生物医学视觉语言(VL)任务 [15, 7, 38, 49, 8] 是有效的。最近,通过创建 PMC-15M [49],一种从 PubMed Central 提取的包含 1500 万生物医学图文对的大规模数据集,使生物医学视觉语言学习成为可能。该数据集的规模比下一个最大的公开数据集 MIMIC-CXR [15] 大两个数量级,并涵盖了多样化的图像类型。
受近期指令调优工作的启发 [34, 24],LLaVA-Med 使用 GPT-4 利用 PMC-15M 的图文对生成多样化的生物医学多模态指令数据,并通过一种新颖的课程学习方法微调一个大型生物医学领域的视觉语言模型 [24]。
2. 相关工作
生物医学聊天机器人(Biomedical Chatbots)。受 ChatGPT [31] /GPT-4 [32] 和开放源代码指令调优大型语言模型(LLMs)在通用领域成功的启发,已经开发了多个生物医学 LLM 聊天机器人,包括 ChatDoctor [47]、Med-Alpaca [12]、PMC-LLaMA [45]、Clinical Camel [1]、DoctorGLM [46] 和 Huatuo [44]。这些模型以开放源码的 LLM 为基础,通过在定制化的生物医学指令数据集上微调而来。最终的 LLM 在多个生物医学相关领域/场景中展现出极大的潜力,例如理解患者需求和提供有依据的建议。
据我们所知,Visual Med-Alpaca [39] 是唯一接受图像输入的现有多模态生物医学聊天机器人。尽管 Visual Med-Alpaca 和本文提出的 LLaVA-Med 具有类似的输入-输出数据格式,但它们在以下关键方面存在差异:
- 模型架构:LLaVA-Med 是一个端到端的神经网络模型,而 Visual Med-Alpaca 是通过连接多个图像标题生成模型和 LLM 组成的系统。后者使用一个分类器来确定是否或由哪个生物医学标题生成模型处理图像,并将转换后的视觉信息与文本 query 合并,从而生成响应。
- 生物医学指令数据:Visual Med-Alpaca 训练于 54K 样本,覆盖有限的生物医学主题领域;而 LLaVA-Med 的训练数据集更加多样化。
生物医学视觉问答(VQA)。构建能够根据生物医学图像回答问题的自动化模型,有助于支持临床医生和患者。现有的生物医学 VQA 方法可以分为判别式和生成式两类:
- 判别式方法:将 VQA 建模为分类问题,模型从预定义的答案集中进行预测。这些方法性能较好,但其预测仅限于封闭集 [13],当推理中提供自定义答案集时需要特别处理 [22, 49, 8]。
- 生成式方法:预测答案为自由形式的文本序列 [5, 26, 41],更为灵活,因为它们能将封闭集问题自然地作为语言指令中的一种特殊情况进行处理。
- 生成式方法更适合开发能够回答开放式问题的通用生物医学助手。
模型架构。LLaVA-Med 的架构类似于 [41] 中语言模型(LM)的前缀调优(prefix tuning)方法,采用一个可训练模块连接冻结的图像编码器和因果 LM。在 [41] 中,使用一个三层 MLP 网络将视觉特征映射为视觉前缀,预训练的 LM 包括 GPT2-XL [37]、BioMedLM [42] 和 BioGPT [28],其规模在 1.5B 至 2.7B 之间。相比之下,LLaVA-Med 使用线性投影和一个 7B 的语言模型 [43, 40]。
最重要的是,文献 [41] 仅考虑标准的监督微调,并集中于探索各种建模选择。而我们的主要贡献在于提出了一种新颖的数据生成方法,利用 GPT-4 从 PubMed Central [49] 提取的广覆盖生物医学图文对,自指导生成多模态指令数据,从而实现更高效的生物医学多模态指令调优。
3. 生物医学视觉指令数据
由于缺乏适用于训练指令跟随助手(instruction-following assistant)的多模态生物医学数据集,我们通过机器和人工联合筛选流程,从广泛存在的生物医学图文对中创建了首个此类数据集。该数据集包括两个子集:概念对齐数据和指令调优数据,分别用于不同的训练阶段(详见第 4 节)。
生物医学概念对齐数据。对于一个生物医学图像 X_v 及其关联标题 X_c,我们采样一个问题 X_q,该问题要求描述生物医学图像。通过 (X_v,X_c, X_q),我们创建一个单轮指令跟随示例:
根据标题的长度,所采样的问题可能要求简洁描述或详细描述图像。附录 A 中提供了两组问题列表。在实践中,PMC-15M [49] 数据集中 25% 的标题长度少于 30 个单词,因此以 30 个单词作为分界点来决定使用哪组问题列表。我们从 PMC-15M 数据集中采样了 60 万个图文对。虽然该数据集仅展示了一种任务指令(即图像标题生成),但它包含了多样且有代表性的生物医学概念样本,来自 PMC-15M 的原始数据集。
生物医学指令调优数据。为了使模型能够遵循多种指令,我们通过提示仅支持语言的 GPT-4,设计并筛选出基于生物医学图像的多轮对话数据。这些数据由多样化的指令跟随示例组成。
具体而言,对于每个图像标题,我们设计了一种提示,让 GPT-4 以一种 “能够看到图像” 的语气生成多轮问题和答案(尽管 GPT-4 实际上只能访问文本)。然而,当标题过于简短时,GPT-4 可能无法生成有意义的问题和答案。为了提供更多与图像相关的上下文信息,我们创建了包含标题及原始 PubMed 论文中提到该图像的句子的提示。此外,我们手动整理了一些少样本示例(few-shot examples)作为提示,演示如何基于提供的标题和上下文生成高质量对话(详见附录 B)。
为了收集图像标题及其上下文,我们对 PMC-15M 数据集进行筛选,仅保留包含单一图像的内容。从中,我们从五种最常见的成像模态中采样了 6 万个图文对,包括:
- CXR(胸部 X 光片)
- CT(计算机断层扫描)
- MRI(磁共振成像)
- 组织病理学
- 肉眼病理学
随后,从原始 PubMed 论文中提到这些图像的句子中提取内容,作为标题的额外上下文。此方法受启发于 “外部知识有助于泛化” 的观察 [20, 25]。
图 1 展示了一个指令跟随数据的示例,图 2 则提供了数据统计信息。我们在迭代改进数据质量的过程中生成了三种版本的指令数据:
- 60K-IM:前述数据集,包含作为上下文的内联提及(inline mentions,IM)。
- 60K:类似规模的 6 万条样本数据集,但在自指导生成中不包含 IM。
- 10K:较小的数据集(1 万条样本),无 IM。
这些版本用于在实验中分析数据生成策略及其对 LLaVA-Med 训练效果的影响。
4. 将多模态对话模型适配到生物医学领域
我们选择 LLaVA(一个通用领域的多模态对话模型)[24] 作为初始的通用语言模型(LM),并将其持续训练适配到生物医学领域。LLaVA-Med 的网络架构与原模型一致,通过线性投影层连接视觉编码器和语言模型。模型训练分为两个阶段,如图 3 所示。
阶段 1:生物医学概念特征对齐。为了在概念覆盖和训练效率之间取得平衡,我们从 PMC-15M 数据集中筛选了 60 万个图文对。通过一种简单的扩展方法将这些图文对转化为指令跟随数据:指令仅呈现描述图像的任务。
对于每个样本,给定语言指令和图像输入,我们要求模型预测原始标题。在训练中,视觉编码器和语言模型的权重保持冻结,仅更新投影矩阵。通过这种方式,大量新的生物医学视觉概念的图像特征被对齐到预训练语言模型中的文本嵌入。这一阶段可以理解为将对齐的图文标记词汇扩展到生物医学领域。
阶段2:端到端指令调优。在这一阶段,仅冻结视觉编码器权重,同时继续更新投影层和语言模型的预训练权重。为了使模型能够以对话形式遵循各种指令并完成任务,我们基于第 3 节收集的生物医学图像-语言指令跟随数据对模型进行微调。
如后续实验所示,经过这一阶段的训练,LLaVA-Med 不仅可以作为生物医学视觉助手与用户互动,还在经过良好验证的生物医学视觉问答(VQA)数据集上展示了良好的零样本任务迁移性能。
微调至下游数据集。在某些特定的生物医学场景下,需要开发高度准确且针对特定数据集的模型,以提高助手的服务质量。我们在完成两个阶段的训练后,将 LLaVA-Med 微调到三个生物医学 VQA 数据集 [27] 上,这些数据集涵盖了不同的规模和多样化的生物医学主题。
在提供生物医学图像作为上下文的情况下,模型针对多种自然语言问题进行自由格式文本回答。对于封闭式问题(close-set questions),在提示中为每个问题提供一个候选答案列表;对于开放式问题(open-set questions),则生成自由形式的答案。
讨论。LLaVA-Med 展示了以下显著特性和潜在意义:
-
经济实惠的开发成本。我们的目标并非通过扩大数据或模型规模以追求最佳性能,而是以较低的开发成本提供经济合理的解决方案。阶段1和阶段2的训练分别耗时 7 小时和 8 小时(使用 8 张 40G A100 GPU,详见表5)。
-
适用于多领域的方案。尽管本文专注于生物医学领域,但所提出的适配流程可以推广到其他垂直领域(如游戏和教育),这些领域需要新的概念和领域知识来构建有用的助手。类似于 [11] 中的“不要停止预训练”的观点,我们提出了一种可扩展的流水线,用于从大规模未标注数据中创建领域特定的指令数据,并倡导“不要停止指令调优”以构建定制的 LMM(大型多模态模型)。
-
低服务成本。虽然通用 LMM 的模型规模可能非常大,服务成本可能高得令人望而却步,但定制化的 LMM 在低服务成本方面具有独特的优势。
-
平滑的模型适配。我们的网络架构允许使用 BioMedCLIP [49] 初始化视觉编码器,或使用 Vicuna [43] 初始化语言模型,从而可能实现更高的性能。然而,从 LLaVA 进行适配可以实现模型行为的平滑过渡,即从“普通人”向能够提供领域特定、有帮助的专业助手转变。
5. 实验
我们进行实验以研究两个关键组件:生成的多模态生物医学指令跟随数据(instruction-following data)的质量,以及 LLaVA-Med 的性能。我们考虑两个研究评估设置:
- 作为一个开放式生物医学视觉聊天机器人,LLaVA-Med 的表现如何?
- LLaVA-Med 与现有方法在标准基准测试中的表现如何?
为了明确起见,在整个实验过程中,我们仅使用语言单独的 GPT-4。
在表格 2 中,我们提供了不同聊天机器人的生物医学视觉对话示例。LLaVA-Med 准确地回答了带有生物医学知识的问题,而 LLaVA 则表现得像一个外行人,基于常识进行幻觉式的回答。由于多模态 GPT-4 尚未公开,我们使用语言单一的 GPT-4 进行比较。我们将黄金标题(golden captions)和内联提及(inline mentions)作为上下文输入到 GPT-4,它通过以对话方式重新组织信息,生成有知识性的回答。
# Closed:回答是封闭式的(即是/否类型);# Open:回答是开放式的,回答为单词或简短短语
图 4 中 Stage 和 FT(Fine-Tuning) 下的数字表示训练的 epochs。
6. 结论
我们提出了 LLaVA-Med,一种用于生物医学领域的大型语言与视觉模型。为了创建这个模型,我们使用自我指导(self-instruct)方法创建了高质量的生物医学语言-图像指令跟随数据集,并通过语言单一的 GPT-4 和外部知识构建了一个数据整理管道。LLaVA-Med 展现了强大的领域知识聊天能力,并在某些指标上通过后续微调超越了之前的监督型 SoTA,在三个 VQA 数据集上取得了更好的表现。
局限性。虽然我们认为 LLaVA-Med 代表了构建有用的生物医学视觉助手的重要一步,但我们也注意到,LLaVA-Med 受到幻觉和许多 LMMs 中常见的浅层推理的限制。未来的工作将致力于提升质量和可靠性。
论文地址:https://arxiv.org/abs/2306.00890
项目页面:https://aka.ms/llava-med
相关文章:
(2023|NIPS,LLaVA-Med,生物医学 VLM,GPT-4 生成自指导指令跟随数据集,数据对齐,指令调优)
LLaVA-Med: Training a Large Language-and-Vision Assistant for Biomedicine in One Day 目录 LLaVA-Med: Training a Large Language-and-Vision Assistant for Biomedicine in One Day 0. 摘要 1. 简介 2. 相关工作 3. 生物医学视觉指令数据 4. 将多模态对话模型适配…...
I2C学习笔记
前言 我一直不是特别喜欢读文档,习惯了通过视频学习,因为视频能更直观地展现信息,给人一种更生动、形象的感觉。然而,随着学习的内容逐渐增多,我发现并不是所有的知识点都能在视频中找到,或者视频中展示的…...
JetPack——ViewModel
前提阅读 JetPack——Lifecycle Jetpack——LiveData ViewModel是什么? ViewModel 类是一种业务逻辑或屏幕级状态容器。它用于将状态公开给界面,以及封装相关的业务逻辑。 它的主要优点是,它可以缓存状态,并可在配置更改后持久…...
【Java 学习】对象赋值的艺术:Java中clone方法的浅拷贝与深拷贝解析,教你如何在Java中实现完美复制
💬 欢迎讨论:如对文章内容有疑问或见解,欢迎在评论区留言,我需要您的帮助! 👍 点赞、收藏与分享:如果这篇文章对您有所帮助,请不吝点赞、收藏或分享,谢谢您的支持&#x…...
【计算机网络】课程 实验四 配置快速生成树协议(RSTP)
实验四 配置快速生成树协议(RSTP) 一、实验目的 1.理解快速生成树协议RSTP的工作原理。 2.掌握如何在交换机上配置快速生成树。 二、实验分析与设计 【背景描述】 某学校为了开展计算机教学和网络办公,建立了一个计…...
SpringBootWeb案例-1(day10)
准备工作 需求 & 环境搭建 需求说明 环境搭建 步骤: 准备数据库表(dept、emp)创建 springboot 工程,引入对应的起步依赖(web、mybatis、mysql 驱动、lombok)配置文件 application.properties 中引入 mybatis 的配置信息&…...
攻防世界 Web_php_wrong_nginx_config
打开题目地址,显示为登录页面。尝试用御剑扫描一下,发现了admin页面,点进去显示如下 点开控制台,发现如下 isLogin参数为0。尝试抓包并该islogin参数为1,返回依旧不变。 再扫描,发现robots.txtÿ…...
【VUE+ElementUI】通过接口下载blob流文件设置全局Loading加载进度
下载Blob流文件,并以服务形式显示文件下载进度 1、下载接口 增加 config参数,并用...config将该属性加入到请求中; xxapi.js文件中设置downloadFile下载接口 // 下载文件 export function downloadFile(data, config) {return request({ur…...
行为树详解(6)——黑板模式
【动作节点数据共享】 行为树中需要的参数可以来自游戏中的各个模块,如果仅需从多个模块获取少量参数,那么可以直接在代码中调用其他模块的单例继而层层调用获取数据。 如果获取的参数量很大,从架构上看,我们需要通过加一个中间…...
【prometheus】Pushgateway安装和使用
目录 一、Pushgateway概述 1.1 Pushgateway简介 1.2 Pushgateway优点 1.3 pushgateway缺点 二、测试环境 三、安装测试 3.1 pushgateway安装 3.2 prometheus添加pushgateway 3.3 推送指定的数据格式到pushgateway 1.添加单条数据 2.添加复杂数据 3.SDk-prometheus-…...
耗时一天,我用AI开发了AI小程序
小码哥从事前后端开发近十年,但是随着技术的更新迭代,有时候没有时间和精力去优化UI、实现一些前后端功能,以及解决一些bug。特别是我想开发小码哥AI的移动端,但觉得自己没有那么多时间去研究移动端了,准备放弃了&…...
Java 日期时间格式化标准
文章目录 Java日期时间格式化符号ISO 8601中的日期时间ISO 8601标准的定义ISO 8601日期时间格式 周数年份ISO 8601中的周数年份Java中的周数年份 Java跨年日期格式化BUG注意事项 Java日期时间格式化符号 JDK官网截图: 格式化符号梳理: 符号描述符号用…...
undolog,redolog,binlog分别是做什么的?
在数据库系统中(尤其是 MySQL),Undo log、Redo log 和 Binlog 是用于实现数据持久性和一致性的重要日志机制。 1. Undo Log(回滚日志) 功能: 用于事务回滚:记录事务开始前的状态,以…...
NRF24L01模块STM32-接收端
前言 在调试接收端时,建议先看下下篇文章NRF24L01调试心得 环境: 芯片:STM32F103C8T6 Keil:V5.24.2.0 一、接收端初始化 void NRF24l01_rx_mode(void) {NRF24L01_CE(0);NRF24l01_write_buf(NRF_WRITE_REG TX_ADDR, (uint8_t *)TX_ADDRE…...
核磁机器学习 | 机器学习和深度学习算法在fMRI中的应用
摘要 功能磁共振成像(fMRI)是目前应用最广泛的脑图像动态分析技术之一,通常结合多种算法来分析复杂的动态数据。近年来,机器学习和深度学习算法在分析fMRI数据方面的应用呈指数级增长。然而,由于文献中存在大量算法,选择合适的机器…...
【数据结构-堆】力扣3296. 移山所需的最少秒数
给你一个整数 mountainHeight 表示山的高度。 同时给你一个整数数组 workerTimes,表示工人们的工作时间(单位:秒)。 工人们需要 同时 进行工作以 降低 山的高度。对于工人 i : 山的高度降低 x,需要花费 workerTimes…...
web前端-html
HTML部分 HTML:超文本标记语言。是万维网web编程的基础,web是建立在超文本基础上的。HTML 是万维网的基石 打开www.baidu.com的页面源代码可见 超文本标记超的含义 1.最重要的标签,超链接标签,可跳转页面,关联所有页…...
单片机-定时器中断
1、相关知识 振荡周期1/12us; //振荡周期又称 S周期或时钟周期(晶振周期或外加振荡周期)。 状态周期1/6us; 机器周期1us; 指令周期1~4us; ①51单片机有两组定时器/计数器,因为既可以定时,又可以计数,故称之为定时器…...
计算机网络 (31)运输层协议概念
一、概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。运输层的一个核心功能是提供从源端主机到目的端主机的可靠的、与实际使用的网络无关的信息传输。它向高层用…...
【学Rust开发CAD】2 创建第一个工作空间、项目及库
文章目录 一、 创建工作空间二、新建项目(可执行文件)三、 新建库(库文件)四、更新项目依赖五、编写代码七、总结 在 Rust 中,工作空间(workspace)允许你管理多个相关的包(crate&…...
使用GitLab+Jenkins搭建CICD执行环境
使用GitLabJenkins搭建CI\CD执行环境 前言什么是DevOps?什么是CI/CD?使用GitLabJenkins搭建CI\CD执行环境GitLab安装1. 安装和配置所需的依赖2. 下载并安装极狐GitLab3. 登录极狐GitLab 实例4.常用gitlab指令5.修改密码 Jenkins安装1.Jenkins 的主要特点…...
微信小程序——创建滑动颜色条
在微信小程序中,你可以使用 slider 组件来创建一个颜色滑动条。以下是一个简单的示例,展示了如何实现一个颜色滑动条,该滑动条会根据滑动位置改变背景颜色。 步骤一:创建小程序项目 首先,使用微信开发者工具创建一个…...
Mac中配置vscode(第一期:python开发)
1、终端中安装 xcode-select --install #mac的终端中安装该开发工具 xcode-select -p #显示当前 Xcode 命令行工具的安装路径注意:xcode-select --install是在 macOS 上安装命令行开发工具(Command Line Tools)的关键命令。安装的主要组件包括:C/C 编…...
Next.js 实战 (七):浅谈 Layout 布局的嵌套设计模式
业务场景 在目前常见的中后台管理系统中,比较常见的是固定的布局方式包裹页面,但一些特殊页面,比如:登录页面、注册页面、忘记密码页面这些页面是不需要布局包裹的。 但在 Next.js AppRouter 中,必须包含一个根布局文…...
Linux环境下确认并操作 Git 仓库
在软件开发和版本控制中,Git 已成为不可或缺的工具。有时,我们需要确认某个目录是否是一个 Git 仓库,并在该目录中运行脚本。本文将详细介绍如何确认 /usr/local/src/zcxt/backend/policy-system-backend 目录是否是一个 Git 仓库,…...
海陵HLK-TX510人脸识别模块 stm32使用
一.主函数 #include "stm32f10x.h" // Device header #include "delay.h" #include "lcd.h" #include "dht11.h" #include "IOput.h" #include "usart.h" //#include "adc.h" …...
MATLAB语言的正则表达式
MATLAB 中的正则表达式使用指南 引言 在数据处理和文本分析中,正则表达式是一种强大而灵活的工具。MATLAB 作为一种广泛应用于科学计算和数据分析的编程语言,提供了对正则表达式的支持,使得用户可以方便地进行字符串匹配与处理。本文将深入…...
【CVPR 2024】【遥感目标检测】Poly Kernel Inception Network for Remote Sensing Detection
0.论文摘要 摘要 遥感图像(RSIs)中的目标检测经常面临几个日益增加的挑战,包括目标尺度的巨大变化和不同范围的背景。现有方法试图通过大核卷积或扩张卷积来扩展主干的空间感受野来解决这些挑战。然而,前者通常会引入相当大的背…...
笔记-使用ffmpeg产生rtsp视频流,然后用进行VLC播放
笔记-使用ffmpeg产生rtsp视频流,然后用进行VLC播放 1.软件配置1.1下载安装好**ffmpeg**1.2使用EasyDarwin创建RTSP服务器 2.FFmpeg找本地摄像头名字3.FFmpeg推流命令3.1使用VLC实现拉流 1.软件配置 1.1下载安装好ffmpeg ffmpeg官网 本地下载 1.2使用EasyDarwin创…...
Ubuntu20.04中EasyConnect启动报错
安装路径 /usr/share/sangfor/EasyConnect 方法 通过 ./EasyConnect获得错误代码,其中‘Failed to load module "canberra-gtk-module"’可以忽略,主要是‘Harfbuzz version too old (1.3.1)’这个问题,后边的版本号可能因系统不…...
计算机毕业设计Python中华古诗词知识图谱可视化 古诗词智能问答系统 古诗词数据分析 古诗词情感分析模型 自然语言处理NLP 机器学习 深度学习
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
Excel | 空格分隔的行怎么导入excel?
准备工作:windows,一个记事本程序和微软的Excel软件。 打开记事本,选中所有内容,按CtrlA全选,然后复制(CtrlC)。 在Excel中,定位到你想粘贴的单元格,按CtrlV进行粘贴。粘贴后,你会在…...
【形式篇】年终总结怎么写:PPT如何将内容更好地表现出来
——细节满满,看完立马写出一篇合格的PPT 总述 形式服务于内容,同时合理的形式可以更好地表达和彰显内容 年终总结作为汇报型PPT,内容一定是第一位的,在内容篇(可点击查看)已经很详细地给出了提纲思路,那如何落实到…...
Python生日祝福烟花
1. 实现效果 2. 素材加载 2个图片和3个音频 shoot_image pygame.image.load(shoot(已去底).jpg) # 加载拼接的发射图像 flower_image pygame.image.load(flower.jpg) # 加载拼接的烟花图 烟花不好去底 # 调整图像的像素为原图的1/2 因为图像相对于界面来说有些大 shoo…...
(六)CAN总线通讯
文章目录 CAN总线回环测试第一种基于板载CAN测试第一步确认板载是否支持第二步关闭 CAN 接口将 CAN 接口置于非活动状态第三步 配置 CAN 接口第一步 设置 CAN 接口比特率第二步 设置 CAN 启用回环模式第三步 启用 CAN 接口 第四步 测试CAN总线回环捕获 CAN 消息发送 CAN 消息 第…...
python.exe无法找到程序入口 无法定位程序输入点(Anaconda Prompt报错)
参考 总结: (1)pythoncom36.dll是pywin32的一个文件,位于路径Anaconda3\envs\pytorch(你的虚拟环境)\Lib\site-packages\pywin32_system32中; (2)但在Anaconda3\envs\pytorch\Library\bin中也…...
C++网络程序设计
在C网络编程中,使用Berkeley Sockets API是一种常见的方法来实现跨平台的TCP通信。Berkeley Sockets API最初是在UNIX系统上开发的,但它已经被广泛移植到其他操作系统,包括Windows。 示例代码 client.cpp #include <iostream> #incl…...
【快速实践】深度学习 -- 数据曲线平滑化
希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【深度学习从 0 到 1】谢谢你的支持! 在观察数据结果时,我们通常希望获得整体趋…...
【强化学习】演员评论家Actor-Critic算法(万字长文、附代码)
📢本篇文章是博主强化学习(RL)领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅…...
Kubernetes Gateway API-5-后端协议和网关基础设置标签
1 后端协议 自 v1.2.0 开始支持 并非所有网关API实现都支持自动协议选择。在某些情况下,协议在没有明确选择加入的情况下被禁用。 当 Route 的后端引用Kubernetes Service 时,应用程序开发人员可以使用 ServicePort appProtocol 字段指定协议。 例如…...
鸿蒙 ArkUI实现地图找房效果
常用的地图找房功能,是在地图上添加区域、商圈、房源等一些自定义 marker,然后配上自己应用的一些筛选逻辑构成,在这里使用鸿蒙 ArkUI 简单实现下怎么添加区域/商圈、房源等 Marker. 1、开启地图服务 在华为开发者官网,注册应用&…...
前后端分离架构设计与实现:构建现代Web应用的基石
前后端分离架构设计与实现:构建现代Web应用的基石 引言 随着互联网技术的发展,Web应用变得越来越复杂和多样化。传统的单体式架构难以满足快速迭代、团队协作以及性能优化的需求。前后端分离架构应运而生,它不仅提高了开发效率,…...
【51单片机】02LED流水灯实验
点亮你的LED 一、点亮第一个LED1.GPIO介绍2.P1、P2、P3端口 二、LED实验2.尝试点亮LED3.LED流水灯4.利用库函数实现流水灯的移动 一、点亮第一个LED 1.GPIO介绍 这块内容这里可以做简单的了解,与数电知识强相关。后续可以再回过头来学习 GPIO (general purpose in…...
【简博士统计学习方法】第1章:4. 模型的评估与选择
4. 模型的评估与选择 4.1 训练误差与测试误差 假如存在样本容量为 N N N的训练集,将训练集送入学习系统可以训练学习得到一个模型,我们将这么模型用决策函数的形式表达,也就是 y f ^ ( x ) y\hat{f}(x) yf^(x),关于模型的拟合…...
GitLab创建用户,设置访问SSH Key
继上一篇 Linux Red Hat 7.9 Server安装GitLab-CSDN博客 安装好gitlab,启用管理员root账号后,开始创建用户账户 1、创建用户账户 进入管理后台页面 点击 New User 输入用户名、邮箱等必填信息和登录密码 密码最小的8位,不然会不通过 拉到…...
flutter 专题二十四 Flutter性能优化在携程酒店的实践
Flutter性能优化在携程酒店的实践 一 、前言 携程酒店业务使用Flutter技术开发的时间快接近两年,这期间有列表页、详情页、相册页等页面使用了Flutter技术栈进行了跨平台整合,大大提高了研发效率。在开发过程中,也遇到了一些性能相关问题和…...
RAFT:随机退火森林
RAFT:随机退火森林 RAFT(Randomized Annealed Forests)是一种机器学习算法,主要用于分类和回归任务。以下是对它的介绍及原理举例说明: 一、RAFT简介 RAFT是一种基于随机森林的集成学习方法,它结合了随机森林的优点和退火算法的思想。随机森林通过构建多个决策树并综…...
上下游服务间解耦的技术与管理
一、解耦为何至关重要 在当今软件研发的复杂生态中,耦合问题如影随形,困扰着众多开发者与企业。当多个模块、系统或团队紧密交织,相互依赖程度不断攀升,仿佛一张错综复杂的网,牵一发而动全身。就拿电商系统来说&#…...
[桌面运维]windows自动设置浅深色主题
设置自动浅色/深色主题 我看很多up主的教程过于繁琐,需要添加四个功能,并且有些还不能生效! 大多数都是教程: 自动任务栏浅色 add HKCUSOFTWAREMicrosoftWindowsCurrentVersionThemesPersonalize/v SystemUsesLightTheme /t …...
【Spring】Spring DI(依赖注入)详解——注入参数的细节处理-内部Bean的注入
引言 在现代Java开发中,Spring框架已经成为了构建企业级应用的标准工具之一。Spring的核心特性之一就是依赖注入(Dependency Injection,DI),它通过将对象的依赖关系从代码中解耦出来,提升了代码的可维护性…...