当前位置: 首页 > news >正文

【AIGC系列】5:视频生成模型数据处理和预训练流程介绍(Sora、MovieGen、HunyuanVideo)

AIGC系列博文:
【AIGC系列】1:自编码器(AutoEncoder, AE)
【AIGC系列】2:DALL·E 2模型介绍(内含扩散模型介绍)
【AIGC系列】3:Stable Diffusion模型原理介绍
【AIGC系列】4:Stable Diffusion应用实践和代码分析
【AIGC系列】5:视频生成模型数据处理和预训练流程介绍(Sora、MovieGen、HunyuanVideo)

目录

  • 1 Sora介绍
    • 1.1 前言
    • 1.2 Feature
    • 1.3 Benchmarks
  • 2 Movie Gen
    • 2.1 预训练数据
      • 2.1.1 视觉过滤(Visual filtering)
      • 2.1.2 运动过滤
      • 2.1.3 内容过滤
      • 2.1.4 字幕生成
      • 2.1.5 多阶段数据整理
      • 2.1.6 分桶处理可变时长和尺寸
    • 2.2 预训练
    • 2.3 Finetuning
  • 3 HunyuanVideo
    • 3.1 Data Filtering
    • 3.2 Data Annotation

1 Sora介绍

1.1 前言

OpenAI做Sora的目的:

  1. 视觉有吸引力,OpenAI喜欢做这种带有创造力的生产力工具;
  2. 他们希望这个世界不仅仅只有文本,更应该像人一样,用更多的感官去感知这个世界,这样才能改变我们最终跟电脑或AI机器人交互的方式;
  3. 视频生成是通向AGI道路一个非常关键的部分。

1.2 Feature

  1. Remix:video editing,支持一些替换、移除或者想象出来的一些元素等操作。

  2. Recut:重新生成、重新剪辑,把选取想要的内容部分,删除不想要的部分,根据已有的好的部分,再去往前或者往后做扩展。

  3. Story board:给定一个视频的timeline,细化到每一帧去剪辑和生成新的视频。

  4. Loop:把一个视频的头和尾稍微剪辑一下,再把它拼起来变成一个无限循环的新视频。

  5. Blend:把两个视频合并成同一个视频,例如物体的合并或者style的合并。

  6. Style presets:先定义一个style,把你的视频都变成这个style。

1.3 Benchmarks

我们来看一下谷歌的Veo2 发布的视频生成模型之间的PK,如下图所示,x轴是不同的视频生成模型,包括Meta的 Movie Gen、快手的可灵、Minimax和Sora Turbo,y轴是用户整体的喜好度。

粉红色是指用户喜欢其他家生成的视频,不喜欢Veo 2;绿色是指用户非常喜欢Veo 2,但不喜欢其他家的生成结果;白色是平局。

benchmarks

整体上,快手的可灵效果还不错,仅次于谷歌的Veo 2,而Sora是最差的,起了个大早,赶了个晚集。

Sora没有发表论文,所以没法精度。

2 Movie Gen

Meta在2024年10月份的时候发表了Movie Gen论文,内容非常详实,总共有96页,效果也不错。

论文:MovieGen: ACastofMediaFoundationModels

Movie Gen是一系列基础模型,能够生成高质量、1080p高清视频,支持不同的宽高比和同步音频。此外,论文还展示了其他能力,例如基于精确指令的视频编辑以及根据用户提供的图像生成个性化视频。模型在多个任务上达到了新的技术水平,包括文本到视频合成、视频个性化、视频编辑、视频到音频生成以及文本到音频生成。Movie Gen最大的视频生成模型是一个拥有300亿参数的Transformer,训练时的最大上下文长度为73,000个视频tokens,这意味着可以以每秒16帧的速度生成长达16秒的视频。

论文在架构、潜在空间、训练目标与方法、数据管理、评估协议、并行化技术和推理优化方面做出了多项技术革新和简化,这些改进使我们能够充分利用扩展预训练数据、模型大小和训练计算的优势来训练大规模媒体生成模型。

2.1 预训练数据

预训练数据集包括O(100)M个视频-文本对和O(1)B个图像-文本对,遵循类似(Dai et al., 2023)的图像-文本数据整理策略,并专注于视频数据的整理。

原始数据池由长度为4秒至2分钟的视频组成,涵盖了来自不同领域如人类、自然、动物和物体的概念。数据整理流程最终生成了一个剪辑-提示对的预训练集,每个剪辑长度为4秒至16秒,这样能确保每个视频尽可能都是描述同一个概念(with single-shot camera and non-trivial motion)。

数据整理流程下图所示,它包括三个过滤阶段:1)视觉过滤,2)运动过滤,和3)内容过滤,以及一个字幕生成阶段。过滤后的剪辑被标注有平均包含100词的详细生成字幕。

数据整理流程

2.1.1 视觉过滤(Visual filtering)

应用6个过滤器去除低视觉质量的视频。

  1. 过滤掉分辨率小于720px的视频

  2. 数据集中60%的视频为横屏视频,40%为竖屏视频

  3. 删去文字特别多的视频

  4. 从长视频中抽取出单场景的4-16s的片段

  5. 保证视频美学品质

  6. 保证视频没有边框

2.1.2 运动过滤

自动过滤掉低运动的视频。

首先,我们使用内部静态视频检测模型移除没有运动的视频。接着,基于VMAF运动分数和运动向量(FFmpeg开发者),识别出具有“合理”运动的视频。此外,使用了PySceneDetect库中的Shot Boundary Detection移除频繁抖动的摄像机运动视频。最后,移除了带有特殊运动效果的视频,例如幻灯片视频。

2.1.3 内容过滤

删除重复的视频片段、对不同类型的数据进行重新采样,保证内容的均匀性。

首先是抽Embedding,因为数据量太大,需要先做一次聚类(clustering),把常见的concept全部抽出来,再根据每个cluster的大小和相似度,把cluster合并起来。最后再从每个cluster中均匀地(平方根倒数)抽取视频数据。

值得注意的是,LLaMa 3里Vision Model的训练数据的准备,也是使用这套流程。

2.1.4 字幕生成

通过使用LLaMa3-Video模型为视频创建准确而详细的文本提示。在底座模型基础之上,微调了该模型的8B和70B变体用于视频字幕任务,并用这些模型为整个训练集的视频添加字幕,最终的训练集包含了70%的8B字幕和30%的70B字幕。用两个模型来做,主要是模型的训练很贵,推理也不便宜,训练集有几个亿的视频的话,用70B的模型也是需要很多卡去跑好几周。另外可能还考虑了多样性,虽然70B模型很好,但是如果全用它来生成的话,会存在bias,换一个模型的话数据的多样性会好一点。

为了实现电影摄像机运动控制,训练了一个摄像机运动分类器,它可以预测16种摄像机运动类别之一,例如缩放、平移等。将高置信度的摄像机运动预测加入到之前生成的文本字幕中,在推理时,这允许用户指定视频生成时的具体摄像机控制。

2.1.5 多阶段数据整理

作者根据逐渐严格的视觉、运动和内容阈值整理出预训练数据的三个子集,以满足不同预训练阶段的需求。

  • 首先,整理了一组最低宽度和高度为720像素的视频用于低分辨率训练。
  • 接着,过滤该集合,提供最低宽度和高度为768像素的视频用于高分辨率训练。
  • 最后,整理了新的视频以扩充我们的高分辨率训练集。

高分辨率集包含80%的横屏视频和20%的竖屏视频,其中至少60%包含人类。在整理过程中,作者建立了一个包含600个人类动作和表情的分类法,并使用该分类法进行了零样本文本到视频检索,以选择包含人类的视频,在内容重新采样期间保留了这些人视频的频率。

经过最终的处理,数据越来越少,最终只保留了少于1%的数据。

剩余数据

2.1.6 分桶处理可变时长和尺寸

为了适应不同的视频长度和宽高比,作者根据宽高比和长度对训练数据进行分桶处理,每个分桶中的视频具有完全相同的latent shape,从而便于训练数据的批量处理。图像和视频数据集都使用了五个宽高比分桶,因此,我们的模型可以生成不同宽高比的图像和视频,例如,横屏为1024×576,竖屏为576×1024。作者定义了五个时长分桶(4秒至16秒),并根据视频长度调整潜在帧的数量,如下表所示。通过向文本字幕添加FPS tokens引入了FPS控制,这样可以以不同的帧率(16至32 FPS)采样视频。

fps

2.2 预训练

这些训练细节都是针对30B模型的。

为了使训练更快更稳定,作者采取了多阶段训练的策略。主要是以下三个步骤,如下表所示:

  1. 首先使用text-to-image的数据对模型进行warm up热身训练,随后使用text-to-image和text-tovideo的数据进行联合训练。

  2. 视频数据分辨率首先由256px提升至768px。

  3. 不断用更好的数据集和优化后的超参数对模型进行训练。

作者保持一个验证集,里面是数据是模型从来没有见过的,可以拿来测试模型的性能,validation loss和人类评估结果是耦合得很好的。

stage

2.3 Finetuning

为了保证生成结果的质量,finetuning的数据集规模可以较小,但是数据质量一定要有保障。因此finetuning的数据均由人为标注,所以这个阶段就是SFT。

高质量的定义:良好的运镜、真实性、美学性、内容丰富、文本描述详细。

为了筛选高质量的数据集,Movie Gen使用连续的四个步骤对数据进行筛选:

  1. 创建一个候选子集,这一步是自动化完成的,作者设置了一个严格的阈值,从美观、运动和场景切换上对每个视频进行严格的限制。此外,使用目标检测模型移除了只有小物体的视频。

  2. 与Content Filtering一样,对第一阶段筛选后的视频进行重新采样,保证各个类别的视频均匀分布。具体做法是,沿用分词表(human verbs and expressions),再做一次视频检索,从而把相关概念的视频抽出来。作者既做了文本k-NN,也做了视频k-NN。对于视频k-NN,做法是每个概念里人工选了几个非常好的视频作为种子视频,再去做视频k-NN,从而拿到concept-balanced的子集。这一步也是自动化完成。

  3. 这一步是人工做的,人为找出具有电影质感的、适合做视频生成训练样本的视频。此外,标注人员还需要把视频中最好看的那一个片段挑出来。

  4. 人为对模型生成的提示词进行润色修改,同时加入详细的原数据:运镜、人物表情、物体和背景信息、具体的运动描述和光线信息。

SFT数据集长度都在10.6s到16s之间,其中50%是16s,剩下50%是10.6s到16s之间。

最后,再做一个Model Averaging操作:不同数据子集、不同超参数训练出来的模型各有所长,为了利用不同checkpoint模型的优势、提升模型泛化性Movie Gen对SFT阶段不同的模型参数进行了平均操作,类似于Llama 3。

3 HunyuanVideo

论文:HunyuanVideo: A Systematic Framework For Large Video Generation Model

GitHub:HunyuanVideo

HuggingFace:HunyuanVideo

与Movie Gen一样,Hunyuan Viedoe使用了图像-视频联合训练的策略,将视频分为五类、图像分为两类,以满足不同训练需求。原始数据涵盖人物、动物、风景等多个领域,筛选时设定了最低时长、画质、构图、色彩等严格标准,优先选用高质量数据,显著提升了模型性能。

3.1 Data Filtering

  1. 使用PySceneDetect把原始视频分割为单镜头拍摄的视频片段。

  2. 使用OpenCV中的拉普拉斯算子找出视频中最“干净”的一帧作为视频开头。

  3. 使用内部的VideoCLIP模型计算每个视频的embeddings,使用embeddings计算余弦距离,删去重复数据。使用K-Means算法对数据进行重新采样以保持各种类型数据的多样性。

  4. 使用Dover模型筛选更为美观的视频片段。单独训练了一个用于筛选清晰度的视频。

  5. 删去了完全禁止和动作幅度较小的视频。(estimated optical flow)

  6. 使用PySceneDetect和Transnet v2获得场景边界信息

  7. 使用OCR模型移除文字过多的视频片段

  8. 使用目标检测模型移除敏感信息

SFT阶段,约有100万条数据,同样采用人为标注的数据进行微调。

数据

3.2 Data Annotation

结构化说明文本:HunYuanVideo使用JSON来对图片信息进行说明。JSON数据包括:Short Description描述场景的主要内容、Dense Description详细、完整的描述、Background描述物体所在的背景、Style描述视频的风格、Shot Type描述视频的具体视角、Lighting描述视频的光线情况、Atmosphere描述视频氛围如Cozy、Tense等。

此外,HunYuanVideo扩展了JSON结构,以包含额外的元数据派生元素,包括源标签、质量标签以及来自图像和视频元信息的其他相关标签。

为了防止过拟合,HunYuanVideo通过精心设计的Dropout及排列和组合策略,根据这些多维度的描述信息来合成长度和模式各异的字幕,旨在提高生成模型的泛化能力。

HunYuanVideo训练了一个运镜分类器来预测14个不同的运镜类型,包括变焦放大、变焦缩小、向上平移、向下平移等。高置信度的分类结果将被添加至数据的JSON说明文本中。

相关文章:

【AIGC系列】5:视频生成模型数据处理和预训练流程介绍(Sora、MovieGen、HunyuanVideo)

AIGC系列博文: 【AIGC系列】1:自编码器(AutoEncoder, AE) 【AIGC系列】2:DALLE 2模型介绍(内含扩散模型介绍) 【AIGC系列】3:Stable Diffusion模型原理介绍 【AIGC系列】4&#xff1…...

基于C++“简单且有效”的“数据库连接池”

前言 数据库连接池在开发中应该是很常用的一个组件,他可以很好的节省连接数据库的时间开销;本文基使用C实现了一个简单的数据库连接池,代码量只有400行左右,但是压力测试效果很好;欢迎收藏 关注,本人将会…...

vulnhub靶场【kioptrix-4】靶机

前言 靶机:kioptrix-4,IP地址为192.168.1.75,后期IP地址为192.168.10.8 攻击:kali,IP地址为192.168.1.16,后期IP地址为192.168.10.6 都采用VMware虚拟机,网卡为桥接模式 这里的靶机&#xf…...

科普:ROC AUC与PR AUC

在评价二分类模型性能时,有许多评价指标,其中,有一对是用面积AUC(Area Under the Curve)做评价的:ROC AUC与PR AUC 本文我们对ROC AUC与PR AUC进行多维度对比分析: 一、定义与核心原理 维度RO…...

服务器IPMI用户名、密码批量检查

背景 大规模服务器部署的时候,少不了较多的网管和监测平台,这些平台会去监控服务器的性能、硬件等指标参数,为了便于管理和控制,则需要给服务器IPMI带外管理添加较多的用户,这就需要对较多的服务器检查所对应的IPMI用…...

51单片机中reg52.h与regx52.h在进行位操作时的不同

reg52.h中不能使用例如 P2_0;这样的定义 而只能使用 P2^0;这样的定义 但是都不可以对位进行直接赋值操作; 而 regx52.h中可以使用 P2_0和P2^0;但是只有使用下划线的才可以对位进行赋值操作 例如P2_0 1; 但不可以是P2^0 1; 在 C 语言中,…...

Apollo Cyber 学习笔记

目录 0 Introduction What Why Advantage 1 Example 2 Concept 3 Flow Chart 4 Module 4.1 Transport 4.1.1 Share Memory 4.1.1.1 Segment 4.1.1.1.1 State 4.1.1.1.2 Block 4.1.1.1.3 Common 4.1.1.2 Notifier 4.1.1.2.1 ConditionNotifier 4.1.1.2.2 Multi…...

【Electron入门】进程环境和隔离

目录 一、主进程和渲染进程 1、主进程(main) 2、渲染进程(renderer) 二、预加载脚本 三、沙盒化 为单个进程禁用沙盒 全局启用沙盒 四、环境访问权限控制:contextIsolation和nodeIntegration 1、contextIsola…...

拉链表介绍

拉链表 是处理 缓慢变化维(SCD) 的一种常用方法,特别适用于需要保留历史记录的场景。以下是拉链表的详细说明及实现方法: 1. 什么是拉链表? 拉链表是一种用于记录维度数据历史变化的表结构,通过 开始时间 …...

Spring Boot 日志配置与常见问题解析(详解)

目录 Spring Boot 日志配置与常见问题解析引言什么是日志?日志的重要性日志使用打印日志 日志框架介绍日志格式的说明⽇志级别日志级别的分类日志级别的使用 Spring Boot 日志配置1. 设置日志级别和格式2. 配置日志收集器3. 查看和分析日志4.日志的持久化5.设置日志…...

-bash: lsof: command not found

一、问题说明 执行如下命令时报错: # lsof |grep deleted > deleted_file -bash: lsof: command not found二、处理方法 # yum -y install lsof安装完成后可成功执行上面的命令。...

PC 端连接安卓手机恢复各类数据:安装、操作步骤与实用指南

软件介绍 这款用于恢复安卓手机数据的软件,虽运行在 PC 端,却专为安卓手机数据恢复打造,使用时得用数据线把手机和电脑连接起来。它的功能相当强大,能帮你找回安卓手机里已删除的短信、联系人、通话记录、文档,还有照…...

ES、OAS、ERP、电子政务、企业信息化(高软35)

系列文章目录 ES、OAS、ERP、电子政务、企业信息化 文章目录 系列文章目录前言一、专家系统(ES)二、办公自动化系统(OAS)三、企业资源规划(ERP)四、典型信息系统架构模型1.政府信息化和电子政务2.企业信息…...

android智能指针android::sp使用介绍

android::sp 是 Android 中的智能指针(Smart Pointer)的实现,用于管理对象的生命周期,避免手动管理内存泄漏等问题。它是 Android libutils 库中重要的一部分,常用于管理继承自 android::RefBase 的对象。 与标准库中…...

推荐一款最新开源,基于AI人工智能UI自动化测试工具!支持自然语言编写脚本!

随着互联网技术的飞速发展,Web应用越来越普及,前端页面也越来越复杂。为了确保产品质量,UI自动化测试成为了开发过程中不可或缺的一环。然而,传统的UI自动化测试工具往往存在学习成本高、维护困难等问题。特别是UI 自动化脚本里往…...

DeepSeek05-大模型WebUI

一、说明: 将DeepSeek部署到前台Web界面的方法主要有以下几种推荐方案,涵盖开源工具、第三方客户端及特定场景适配方案: Open WebUIChatbox AICherry StudioSillyTavern 二、Open WebUI 安装配置教程 特点:Open WebUI 是一个开…...

自然语言处理NLP入门 -- 第八节OpenAI GPT 在 NLP 任务中的应用

在前面的学习中,我们已经了解了如何使用一些经典的方法和模型来处理自然语言任务,如文本分类、命名实体识别等。但当我们需要更强的语言生成能力时,往往会求助于更先进的预训练语言模型。OpenAI 旗下的 GPT 系列模型(如 GPT-3、GP…...

FFmpeg av_read_frame 和iOS系统提供的 AVAudioRecorder 实现音频录制的区别

1. 第一种方式:使用 FFmpeg 的 av_read_frame 特点 底层实现:基于 FFmpeg,这是一个强大的多媒体处理库,直接操作音频流。灵活性:非常灵活,可以处理多种音频格式、编解码器和输入设备。复杂性:需要手动管理音频流、数据包(AVPacket)、内存释放等,代码复杂度较高。跨平…...

【区块链】深入理解区块链中的 Gas 机制

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 深入理解区块链中的 Gas 机制一、Gas 的基本概念1.1 为什么需要 Gas&#xff1f…...

2020 年英语(一)考研真题 笔记(更新中)

Section I Use of English(完型填空) 原题 Directions:Read the following text. Choose the best word (s) for each numbered blank and mark A, B, C or D on the ANSWER SHEET. (10 points) Even if families are less likely to si…...

mamba_ssm和causal-conv1d详细安装教程

1.前言 Mamba是近年来在深度学习领域出现的一种新型结构,特别是在处理长序列数据方面表现优异。在本文中,我将介绍如何在 Linux 系统上安装并配置 mamba_ssm 虚拟环境。由于官方指定mamba_ssm适用于 PyTorch 版本高于 1.12 且 CUDA 版本大于 11.6 的环境…...

leetcode-442.数组中重复的数据

leetcode-442.数组中重复的数据 文章目录 leetcode-442.数组中重复的数据1.题目描述:数组中重复的数据2.第一次代码提交:(不符合仅使用常量额外空间)3.最终代码提交:只使用常数额外空间、时间复杂度为 O(n) 的做法,即“标记法” 1…...

UniApp 按钮组件 open-type 属性详解:功能、场景与平台差异

文章目录 引言一、open-type 基础概念1.1 核心作用1.2 通用使用模板 二、主流 open-type 值详解2.1 contact - 客服会话功能说明平台支持代码示例 2.2 share - 内容转发功能说明平台支持注意事项 2.3 getUserInfo - 获取用户信息功能说明平台支持代码示例 2.4 getPhoneNumber -…...

Android13修改多媒体默认音量

干就完了! 设置音量为最大音量,修改如下: /framework/base/media/java/android/media/AudioSystem.java/** hide */public static int[] DEFAULT_STREAM_VOLUME new int[] {4, // STREAM_VOICE_CALL7, // STREAM_SYSTEM5, // STREAM_RING-5, // STREAM_MUSIC15, // STREAM…...

【银河麒麟高级服务器操作系统】服务器测试业务耗时问题分析及处理全流程分享

更多银河麒麟操作系统产品及技术讨论,欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer…...

HTTP 请求时传递多部分表单数据

HTTP 请求时传递多部分表单数据(multipart/form-data) --data-raw $------demo11111\r\nContent-Disposition: form-data; name"Filedata"; filename"截屏2025-02-27 15.45.46.png"\r\nContent-Type: image/png\r\n\r\n\r\n------d…...

【Python环境】配置极简描述

241220 241220 241220 Python环境配置 下载Python 稳定版本:Stable Releases【3.12.3】 下载地址:Python Releases for Windows | Python.org. 配环境 注意勾上Add Python 3.x to PATH,然后点“Install Now”即可完成安装。 配置完成&…...

1. HTTP 数据请求

相关资源: 图片素材📎图片素材.zip 接口文档 1. HTTP 数据请求 什么是HTTP数据请求: (鸿蒙)应用软件可以通过(鸿蒙)系统内置的 http 模块 和 Axios,通过 HTTP 协议和服务器进行通讯 学习核心Http请求技术: Http模块 - 属于鸿…...

基于深度学习+NLP豆瓣电影数据爬虫可视化推荐系统

博主介绍:资深开发工程师,从事互联网行业多年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有…...

Apache Spark中的依赖关系与任务调度机制解析

Apache Spark中的依赖关系与任务调度机制解析 在Spark的分布式计算框架中,RDD(弹性分布式数据集)的依赖关系是理解任务调度、性能优化及容错机制的关键。宽依赖(Wide Dependency)与窄依赖(Narrow Dependency)作为两种核心依赖类型,直接影响Stage划分、Shuffle操作及容…...

SEO炼金术(4)| Next.js SEO 全攻略

在上一篇文章 SEO炼金术(3)| 深入解析 SEO 关键要素 中,我们深入解析了 SEO 关键要素,包括 meta 标签、robots.txt、canonical、sitemap.xml 和 hreflang,并探讨了它们在搜索引擎优化(SEO)中的作…...

DeepSeek开源周,第五弹再次来袭,3FS

Fire-Flyer 文件系统(3FS)总结: 一、核心特点 3FS 是一个专为 AI 训练和推理工作负载设计的高性能分布式文件系统,利用现代 SSD 和 RDMA 网络,提供共享存储层,简化分布式应用开发。其主要特点包括&#xf…...

conda怎么迁移之前下载的环境包,把python从3.9升级到3.10

克隆旧环境(保留旧环境作为备份) conda create -n cloned_env --clone old_env 在克隆环境中直接升级 Python conda activate cloned_env conda install python3.10 升级 Python 后出现 所有包导入失败 的问题,通常是因为依赖包与新 Pyth…...

一周一个Unity小游戏2D反弹球游戏 - 移动的弹板(鼠标版)

前言 本文将实现控制弹板移动,通过Unity的New Input System,可以支持鼠标移动弹板跟随移动,触控点击跟随移动,并且当弹板移动到边界时,弹板不会移动超过边界之外。 创建移动相关的InputAction 项目模版创建的时候默认会…...

wordpress子分类调用父分类名称和链接的3种方法

专为导航而生&#xff0c;在wordpress模板制作过程中常常会在做breadcrumbs导航时会用到&#xff0c;子分类调用父分类的名称和链接&#xff0c;下面这段简洁的代码&#xff0c;可以完美解决这个问题。 <?php echo get_category_parents( $cat, true, &raquo; ); ?…...

使用mermaid查看cursor程序生成的流程图

一、得到cursor生成的流程图文本 cursor写的程序正常运行后&#xff0c;在对话框输入框中输入诸如“请生成扫雷的代码流程图”&#xff0c;然后cursor就把流程图给生成了&#xff0c;但是看到的还是文本的样子&#xff0c;保留这部分内容待用 二、注册一个Mermaid绘图账号 …...

GC垃圾回收介绍及GC算法详解

目录 引言 GC的作用域 什么是垃圾回收&#xff1f; 常见的GC算法 1.引用计数法 2.复制算法 3.标记清除 4.标记整理 小总结 5.分代收集算法 ps:可达性分析算法&#xff1f; 可达性分析的作用 可达性分析与垃圾回收算法的关系 结论 引言 在编程世界中&#xff0c;…...

设计后端返回给前端的返回体

目录 1、为什么要设计返回体&#xff1f; 2、返回体包含哪些内容&#xff08;如何设计&#xff09;&#xff1f; 举例 3、总结 1、为什么要设计返回体&#xff1f; 在设计后端返回给前端的返回体时&#xff0c;通常需要遵循一定的规范&#xff0c;以确保前后端交互的清晰性…...

Pytorch为什么 nn.CrossEntropyLoss = LogSoftmax + nn.NLLLoss?

为什么 nn.CrossEntropyLoss LogSoftmax nn.NLLLoss&#xff1f; 在使用 PyTorch 时&#xff0c;我们经常听说 nn.CrossEntropyLoss 是 LogSoftmax 和 nn.NLLLoss 的组合。这句话听起来简单&#xff0c;但背后到底是怎么回事&#xff1f;为什么这两个分开的功能加起来就等于…...

Linux实操——在服务器上直接从百度网盘下载(/上传)文件

Linux Linux实操——在服务器上直接从百度网盘下载&#xff08;/上传&#xff09;文件 文章目录 Linux前言一、下载并安装bypy工具二、认证并授权网盘账号三、将所需文件转移至目的文件夹下四、下载文件五、上传文件六、更换绑定的百度云盘账户 前言 最近收到一批很大的数据&…...

【无标题】ABP更换MySql数据库

原因&#xff1a;ABP默认使用的数据库是sqlServer&#xff0c;本地没有安装sqlServer&#xff0c;安装的是mysql&#xff0c;需要更换数据库 ABP版本&#xff1a;9.0 此处以官网TodoApp项目为例 打开EntityFrameworkCore程序集&#xff0c;可以看到默认使用的是sqlServer&…...

nuxt常用组件库html-validator应用解析

html-validator 主要用于自动验证nuxt服务器呈现的HTML(SSR和SSG)&#xff0c;以检测可能导致水合错误的HTML常见问题&#xff0c;有助于减少水合错误&#xff0c;检测常见的可访问性错误。 安装 npx nuxilatest module add html-validator配置 若自动更新nuxt.config.ts配置文…...

思维训练(算法+技巧)

1.深度优先搜索&#xff1a;暴力求解&#xff0c;适合判断能不能走出迷宫 利用递归&#xff0c;有一个check【】数组来检查该节点是否经过 for循环该节点的邻接节点&#xff08;存在且没被访问&#xff09;&#xff0c;递归DFS&#xff08;该节点的某个邻接节点&#xff09; D…...

AIGC(生成式AI)试用 25 -- 跟着清华教程学习 - DeepSeek+DeepResearch让科研像聊天一样简单

目标&#xff1a;继续学习&#xff0c;以DeepSeek为主 个人理解&#xff1a; - 模型结合&#xff0c;充分发挥各模型的优势 - 关注应用&#xff0c;弱化理论&#xff0c;了解就好 - 多模态&#xff1a;多模态&#xff08;Multimodality&#xff09;是指结合多种不同类型的数据…...

Solr中得Core和Collection的作用和关系

Solr中得Core和Collection的作用和关系 一&#xff0c; 总结 在Apache Solr中&#xff0c;Core和Collection 是两个核心概念&#xff0c;他们分别用于单机模式和分布式模式&#xff08;SolrCloud&#xff09;中&#xff0c;用于管理和组织数据。 二&#xff0c;Core 定义&am…...

温湿度监控设备融入智慧物联网

当医院的温湿度监控设备融入智慧物联网&#xff0c;将会带来许多新的体验&#xff0c;可以帮助医院温湿度监控设备智能化管理&#xff0c;实现设备之间的互联互通&#xff0c;方便医院对温湿度数据进行统一管理和分析。 添加智慧物联网技术&#xff0c;实现对医院温湿度的实时…...

软件测试的七大误区

随着软件测试对提高软件质量重要性的不断提高&#xff0c;软件测试也不断受到重视。但是&#xff0c;国内软件测试过程的不规范&#xff0c;重视开发和轻视测试的现象依旧存在。因此&#xff0c;对于软件测试的重要性、测试方法和测试过程等方面都存在很多不恰当的认识&#xf…...

Mac 版 本地部署deepseek ➕ RAGflow 知识库搭建流程分享(附问题解决方法)

安装&#xff1a; 1、首先按照此视频的流程一步一步进行安装&#xff1a;(macos版&#xff09;ragflowdeepseek 私域知识库搭建流程分享_哔哩哔哩_bilibili 2、RAGflow 官网文档指南&#xff1a;https://ragflow.io 3、RAGflow 下载地址&#xff1a;https://github.com/infi…...

标记符号“<”和“>”符号被称为“尖括号”或“角括号”

你提到的“<”和“>”符号被称为“尖括号”或“角括号”。它们常用于编程语言中表示类型参数&#xff08;如泛型&#xff09;、HTML标签&#xff08;如<div>&#xff09;、数学中的不等式&#xff08;如< 5&#xff09;等。 好的&#xff0c;我来用通俗的方式解…...

DMA发送全部历史记录数据到串口

背景 博主参与的项目中&#xff0c;有个读取全部历史记录的功能&#xff0c;如果下位机在主程序中将全部历史记录单纯地通过串口传输会比较占用cpu资源&#xff0c;影响主程序中别的功能。最后商量得出以下实现方案&#xff1a; 定义两个发送缓冲区DMATxbuf1和DMATxbuf2&…...