【AIGC】冷启动数据与多阶段训练在 DeepSeek 中的作用
文章目录
- 💯前言
- 💯冷启动数据的作用
- 冷启动数据设计
- 💯多阶段训练的作用
- 阶段 1:冷启动微调
- 阶段 2:推理导向强化学习(RL)
- 阶段 3:拒绝采样与监督微调(SFT)
- 阶段 4:多场景强化学习
- 💯代码示例:冷启动数据与多阶段训练的实现
- 1. 冷启动微调阶段
- 作用与应用:
- 2. 推理导向的强化学习阶段
- 作用与应用:
- 3. 拒绝采样与监督微调阶段
- 作用与应用:
- 4. 多场景强化学习
- 作用与应用:
- 总体流程
- DeepSeek 中的应用
- 💯总结
💯前言
- 在人工智能领域,深度学习模型的训练和优化往往需要大量的标注数据和计算资源。然而,面对复杂任务时,即使是最先进的技术和大量的训练数据也未必能够保证模型的最优表现。DeepSeek 在推理能力的提升上做出了突破,其中 冷启动数据 和 多阶段训练 是至关重要的组成部分。这些技术不仅提升了模型的推理效果,还确保了模型在各种复杂推理任务中具备了更高的准确度和稳定性。
本文将深入探讨 冷启动数据 和 多阶段训练 在 DeepSeek 模型中的作用,并通过具体的例子和代码块,详细说明其在模型优化中的核心地位。
DeepSeek API Docs
💯冷启动数据的作用
冷启动数据(cold-start data)是指在模型训练的初期阶段,利用少量手工设计的高质量数据来启动训练过程。这些数据并不依赖于大规模的标签数据,而是通过精心设计,提供对模型有指导性的推理信息,帮助模型在早期获得较好的表现。
在 DeepSeek 中,冷启动数据的引入主要解决了 DeepSeek-R1-Zero 模型在初期训练时遇到的可读性差、推理混乱等问题。DeepSeek-R1-Zero 使用强化学习(RL)直接从基础模型开始训练,而没有依赖传统的监督式微调(SFT)。然而,初期的 RL 模型由于缺乏有效的指导信息,往往会产生不符合用户需求的推理结果,比如推理链条不清晰、语言混合等问题。为了改善这一情况,DeepSeek-R1 引入了冷启动数据,这些数据帮助模型在最初阶段进行微调,使得其能够生成更加规范和易于理解的推理过程。
冷启动数据设计
在 DeepSeek 中,冷启动数据通常是通过以下几种方式收集和生成的:
-
少样本引导:利用少量的推理样本,生成详细的推理链条(Chain of Thought,CoT)。这些示例通常具有清晰的结构和推理过程,并且会被用于指导模型如何生成合适的推理步骤。
-
反思与验证提示:通过提示模型生成推理步骤,并要求其进行反思和验证。这样可以确保模型在推理过程中不断自我修正,提升推理的可靠性和准确度。
-
基于现有模型生成数据:从 DeepSeek-R1-Zero 的输出中筛选出高质量的推理链条,并通过人工后处理来增强其可读性和一致性。
通过这些方法,冷启动数据帮助模型在初期获得了更为规范的推理行为,从而为后续的多阶段训练打下了坚实的基础。
💯多阶段训练的作用
多阶段训练是 DeepSeek 中用于提升推理性能的核心技术之一。它通过分阶段逐步优化模型,解决了复杂任务中不同类型的推理能力瓶颈,并确保了模型能够在更为复杂和多样化的任务上获得更好的表现。
在 DeepSeek 的多阶段训练中,主要有以下几个阶段:
阶段 1:冷启动微调
在这一阶段,模型基于基础模型(如 DeepSeek-V3-Base)进行初步的微调。冷启动数据为这一阶段的训练提供了高质量的指导,确保模型可以生成清晰的推理链条。冷启动微调的目标是帮助模型快速获得有效的推理框架,使其在之后的训练中更加高效。
阶段 2:推理导向强化学习(RL)
此阶段的核心是 推理导向的强化学习(Reasoning-Oriented RL),即通过大规模的强化学习训练,进一步提升模型的推理能力。在这一阶段,模型通过执行多个推理任务,不断调整其推理策略,学习如何在不同的任务中进行有效推理。
为了让强化学习过程更加稳定和高效,DeepSeek 引入了 奖励建模 和 语言一致性奖励 等机制,帮助模型优化推理过程并减少语言混杂问题。奖励建模主要有两种类型:
-
准确度奖励:根据模型回答的正确性来进行奖励。例如,在数学问题中,模型需要提供准确的答案,才能获得奖励。
-
格式奖励:强制模型将思维过程置于
<think>
和</think>
标签之间,以便清晰地展示推理链条。这种格式要求不仅提升了可读性,还帮助模型在推理过程中保持一致性。
阶段 3:拒绝采样与监督微调(SFT)
在这一阶段,经过强化学习训练的模型会通过 拒绝采样(Rejection Sampling) 方法,从 RL 训练中收集出符合要求的推理数据。拒绝采样通过对模型生成的推理进行评估,仅保留符合正确答案的推理链条,进一步优化模型的推理输出。
此后,模型会使用 监督微调(Supervised Fine-Tuning, SFT) 数据进行进一步的训练,特别是包括其他领域的知识,如写作、角色扮演等。这一阶段的目标是让模型不仅在推理任务中表现出色,还能在通用任务中展示出强大的能力。
阶段 4:多场景强化学习
最后,DeepSeek 引入了 多场景强化学习,该阶段的目标是进一步调整模型的推理能力,使其能够在不同的场景中更好地处理推理任务。同时,强化学习过程还会根据人类偏好进行优化,以提高模型在实际应用中的友好性和安全性。
💯代码示例:冷启动数据与多阶段训练的实现
以下是一个简单的代码示例,展示如何在模型训练中使用冷启动数据和多阶段训练。
# 假设已经有基础的模型 deepseek_v3_base 和冷启动数据 cold_start_data# 1. 冷启动微调阶段
def cold_start_finetuning(model, cold_start_data):# 使用冷启动数据微调模型model.train(cold_start_data)print("冷启动微调完成")return model# 2. 推理导向的强化学习阶段
def reasoning_oriented_rl(model, training_data, reward_function):# 采用强化学习算法训练模型for data in training_data:# 计算奖励reward = reward_function(model, data)# 更新模型model.update_with_reward(data, reward)print("推理导向的强化学习训练完成")return model# 3. 拒绝采样与监督微调阶段
def rejection_sampling(model, validation_data):# 进行拒绝采样,保留高质量的推理链条sampled_data = reject_bad_samples(model, validation_data)print(f"拒绝采样,保留 {len(sampled_data)} 条高质量数据")return sampled_datadef supervised_finetuning(model, sampled_data, sft_data):# 使用采样数据和SFT数据进一步微调模型model.train(sampled_data + sft_data)print("监督微调完成")return model# 4. 多场景强化学习
def multi_scenario_rl(model, scenarios):# 针对不同场景进行强化学习for scenario in scenarios:reward = evaluate_scenario(model, scenario)model.update_with_reward(scenario, reward)print("多场景强化学习完成")return model# 示例:训练 DeepSeek 模型
model = deepseek_v3_base
model = cold_start_finetuning(model, cold_start_data)
model = reasoning_oriented_rl(model, training_data, reward_function)
sampled_data = rejection_sampling(model, validation_data)
model = supervised_finetuning(model, sampled_data, sft_data)
model = multi_scenario_rl(model, scenarios)print("DeepSeek 模型训练完成")
1. 冷启动微调阶段
def cold_start_finetuning(model, cold_start_data):# 使用冷启动数据微调模型model.train(cold_start_data)print("冷启动微调完成")return model
作用与应用:
- 冷启动数据是训练过程中的一类初步数据,它帮助模型在没有大量监督数据的情况下启动训练。通过利用精心设计的少量推理数据(如提供结构化的推理链条和反思过程),模型能够在训练初期就产生合理的推理输出。
- 在 DeepSeek 中,冷启动微调 通过这种少量数据来解决模型初期可能出现的推理混乱和不稳定性问题。这个阶段非常关键,因为它帮助模型快速适应训练环境并生成规范化的推理步骤。
2. 推理导向的强化学习阶段
def reasoning_oriented_rl(model, training_data, reward_function):# 采用强化学习算法训练模型for data in training_data:# 计算奖励reward = reward_function(model, data)# 更新模型model.update_with_reward(data, reward)print("推理导向的强化学习训练完成")return model
作用与应用:
- 这一阶段使用 强化学习(RL) 来优化模型在推理任务中的表现。通过 推理导向的强化学习,模型不仅学习如何给出答案,还学习如何生成合适的推理过程(即推理链条)。强化学习允许模型在解决复杂问题时能够不断调整和完善其推理策略。
- 奖励机制(
reward_function
)在此发挥重要作用。每个训练步骤都基于模型的输出(例如,推理链条的正确性、格式等)来计算奖励,从而引导模型朝向正确的推理路径。 - 在 DeepSeek 中,这个过程主要集中在数学推理、编程问题、科学推理等任务上,模型根据每个步骤的推理质量进行更新,从而提高其解题能力。
3. 拒绝采样与监督微调阶段
def rejection_sampling(model, validation_data):# 进行拒绝采样,保留高质量的推理链条sampled_data = reject_bad_samples(model, validation_data)print(f"拒绝采样,保留 {len(sampled_data)} 条高质量数据")return sampled_datadef supervised_finetuning(model, sampled_data, sft_data):# 使用采样数据和SFT数据进一步微调模型model.train(sampled_data + sft_data)print("监督微调完成")return model
作用与应用:
- 拒绝采样(Rejection Sampling) 是一种筛选技术,用于从训练过程中收集高质量的推理数据。通过评估模型生成的输出,拒绝采样方法能够过滤掉低质量的推理链条,只保留那些符合标准的输出。这一过程确保了模型输出的推理链条不仅正确,而且可读性强。
- 经过 拒绝采样 处理后的数据会被用于进一步的训练。监督微调(Supervised Fine-Tuning, SFT) 阶段结合了采样后的高质量数据和其他领域的知识(如写作、角色扮演等),进一步提升模型的综合能力。这个阶段旨在确保模型不仅在推理任务上表现出色,同时也能处理通用任务。
4. 多场景强化学习
def multi_scenario_rl(model, scenarios):# 针对不同场景进行强化学习for scenario in scenarios:reward = evaluate_scenario(model, scenario)model.update_with_reward(scenario, reward)print("多场景强化学习完成")return model
作用与应用:
- 多场景强化学习 是为了增强模型在多个任务或场景中的表现而设计的。在 DeepSeek 中,模型需要处理各种推理任务(如数学问题、代码生成、科学推理等),这些任务可能具有不同的特征和要求。通过 多场景强化学习,模型能够在多个领域内进行学习,并根据不同场景的需求进行调整。
- 在这一阶段,模型根据不同的任务和场景评估其输出,并通过强化学习进一步优化。每个场景的奖励计算和更新都会帮助模型适应新的场景或任务,提升其多样性和通用性。
总体流程
在这段代码的整体流程中,模型从初期的冷启动数据微调开始,逐步经过强化学习优化、拒绝采样与监督微调,最终通过多场景强化学习确保模型能够应对各种推理任务。这个过程的目标是让模型在特定任务上具备出色的推理能力,同时保持广泛的通用性。
DeepSeek 中的应用
在 DeepSeek 中,这一多阶段训练过程使得模型能够:
- 快速适应初期训练,通过冷启动数据稳定训练过程;
- 通过强化学习进一步优化推理链条,提升推理任务的准确性;
- 通过拒绝采样与监督微调提高推理的质量和可读性,确保模型不仅能够给出正确答案,还能够清晰地解释其推理过程;
- 通过多场景强化学习提升模型在多任务中的适应能力,实现更广泛的应用。
通过这样的多阶段训练,DeepSeek 能够在复杂任务中表现出色,不仅解决了推理问题,还能不断自我改进和进化,处理各种实际应用中的挑战。
💯总结
冷启动数据和多阶段训练是 DeepSeek 在推理任务中取得突破性进展的关键技术。冷启动数据通过提供高质量的引导信息,帮助模型在训练初期快速获得稳定的推理框架,而多阶段训练则确保了模型能够逐步提升其推理能力,处理更复杂的任务。通过这些技术,DeepSeek 不仅在推理任务上达到了前所未有的表现,也为未来人工智能推理模型的优化提供了新的思路和方法。
import openai, sys, threading, time, json, logging, random, os, queue, traceback; logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"); openai.api_key = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY"); def ai_agent(prompt, temperature=0.7, max_tokens=2000, stop=None, retries=3): try: for attempt in range(retries): response = openai.Completion.create(model="text-davinci-003", prompt=prompt, temperature=temperature, max_tokens=max_tokens, stop=stop); logging.info(f"Agent Response: {response}"); return response["choices"][0]["text"].strip(); except Exception as e: logging.error(f"Error occurred on attempt {attempt + 1}: {e}"); traceback.print_exc(); time.sleep(random.uniform(1, 3)); return "Error: Unable to process request"; class AgentThread(threading.Thread): def __init__(self, prompt, temperature=0.7, max_tokens=1500, output_queue=None): threading.Thread.__init__(self); self.prompt = prompt; self.temperature = temperature; self.max_tokens = max_tokens; self.output_queue = output_queue if output_queue else queue.Queue(); def run(self): try: result = ai_agent(self.prompt, self.temperature, self.max_tokens); self.output_queue.put({"prompt": self.prompt, "response": result}); except Exception as e: logging.error(f"Thread error for prompt '{self.prompt}': {e}"); self.output_queue.put({"prompt": self.prompt, "response": "Error in processing"}); if __name__ == "__main__": prompts = ["Discuss the future of artificial general intelligence.", "What are the potential risks of autonomous weapons?", "Explain the ethical implications of AI in surveillance systems.", "How will AI affect global economies in the next 20 years?", "What is the role of AI in combating climate change?"]; threads = []; results = []; output_queue = queue.Queue(); start_time = time.time(); for idx, prompt in enumerate(prompts): temperature = random.uniform(0.5, 1.0); max_tokens = random.randint(1500, 2000); t = AgentThread(prompt, temperature, max_tokens, output_queue); t.start(); threads.append(t); for t in threads: t.join(); while not output_queue.empty(): result = output_queue.get(); results.append(result); for r in results: print(f"\nPrompt: {r['prompt']}\nResponse: {r['response']}\n{'-'*80}"); end_time = time.time(); total_time = round(end_time - start_time, 2); logging.info(f"All tasks completed in {total_time} seconds."); logging.info(f"Final Results: {json.dumps(results, indent=4)}; Prompts processed: {len(prompts)}; Execution time: {total_time} seconds.")
相关文章:
【AIGC】冷启动数据与多阶段训练在 DeepSeek 中的作用
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯冷启动数据的作用冷启动数据设计 💯多阶段训练的作用阶段 1:冷启动微调阶段 2:推理导向强化学习(RL࿰…...
Spring(26) spring-security-oauth2 官方表结构解析
目录 一、什么是 spring-security-oauth2?二、spring-security-oauth2 的表结构2.1 oauth_client_details 客户端详细信息表2.2 oauth_access_token 认证授权Token记录表2.3 oauth_refresh_token 刷新授权Token记录表2.4 oauth_code 授权Code记录表 一、什么是 spri…...
WPS如何接入DeepSeek(通过JS宏调用)
WPS如何接入DeepSeek 一、文本扩写二、校对三、翻译 本文介绍如何通过 WPS JS宏调用 DeepSeek 大模型,实现自动化文本扩写、校对和翻译等功能。 一、文本扩写 1、随便打开一个word文档,点击工具栏“工具”。 2、点击“开发工具”。 3、点击“查看代码”…...
项目的虚拟环境的搭建与pytorch依赖的下载
文章目录 配置环境 pytorch的使用需要安装对应的cuda 在PyTorch中使用CUDA, pytorch与cuda不同版本对应安装指南,查看CUDA版本,安装对应版本pytorch 【超详细教程】2024最新Pytorch安装教程(同时讲解安装CPU和GPU版本) 配置环境…...
[每周一更]-(第133期):Go中MapReduce架构思想的使用场景
文章目录 **MapReduce 工作流程**Go 中使用 MapReduce 的实现方式:**Go MapReduce 的特点****哪些场景适合使用 MapReduce?**使用场景1. 数据聚合2. 数据过滤3. 数据排序4. 数据转换5. 数据去重6. 数据分组7. 数据统计8.**统计文本中单词出现次数****代码…...
C 移位运算符
宏定义 #define GET_BIT(n) ((1 << (n))) 用于生成一个整数,该整数在第 n 位上是 1,其余位都是 0。这个宏通常用于位操作,比如设置、清除或检查某个特定位置的标志位。 1 << (n):这是位移操作符。它将数字 1 左移 n …...
redis高级数据结构布隆过滤器
文章目录 背景什么是布隆过滤器Redis 中的布隆过滤器布隆过滤器使用注意事项实现原理空间占用估计 背景 我们在使用新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉那些已经看过的内容。问题来了,新闻…...
活动预告 |【Part1】Microsoft 安全在线技术公开课:安全性、合规性和身份基础知识
课程介绍 通过参加“Microsoft 安全在线技术公开课:安全性、合规性和身份基础知识”活动提升你的技能。在本次免费的介绍性活动中,你将获得所需的安全技能和培训,以创造影响力并利用机会推动职业发展。你将了解安全性、合规性和身份的基础知识…...
基于DeepSeek模型的思维导图智能系统
基于DeepSeek模型的思维导图智能系统 摘 要:本文研究了Prompt技术在自然语言处理(NLP)中的应用,重点探讨了其在用户输入语言转换任务中的作用。基于DeepSeek模型,文章通过设计不同的Prompt并结合API调用,…...
【玩转 Postman 接口测试与开发2_019】第15章:利用 Postman 初探 API 性能测试(含实战截图)
《API Testing and Development with Postman》最新第二版封面 文章目录 第十五章 API 接口性能测试1 性能负载的类型2 Postman 负载配置3 Postman 性能测试实战3.1 Fixed 型负载下的性能测试3.2 基于数据驱动的 Postman 接口性能测试 4 性能测试的注意事项 写在前面 终于来到了…...
使用 Three.js 实现炫酷的除夕烟花特效
1,前言 在除夕夜,璀璨的烟花点亮夜空,为节日增添了浓厚的喜庆氛围。在 Web 端,我们可以使用 Three.js 来模拟这种美轮美奂的烟花特效,让网页也能展现绚丽的节日气息。本文将介绍如何利用 Three.js 及其着色器技术&…...
【Redis keys命令有什么问题?】
Redis keys命令有什么问题? 性能问题实际使用中的限制替代方案示例讲解Redis keys命令的问题示例替代方案:使用SCAN命令Java代码示例性能问题 时间复杂度:keys命令的时间复杂度是O(n),其中n是Redis中键的总数。这意味着,当Redis中存储的键数量非常大时,执行keys命令会遍历…...
STC51案例操作
案例 1:LED 闪烁 功能描述:通过操作 P1 口寄存器,让连接在 P1.0 引脚的 LED 以一定间隔闪烁。 #include <reg51.h>// 延时函数 void delay(unsigned int time) {unsigned int i, j;for (i 0; i < time; i)for (j 0; j < 123; …...
顺丰数据分析(数据挖掘)面试题及参考答案
你觉得数据分析人员必备的技能有哪些? 数据分析人员需具备多方面技能,以应对复杂的数据处理与解读工作。 数据处理能力:这是基础且关键的技能。数据常以杂乱、不完整的形式存在,需通过清洗,去除重复、错误及缺失值数据,确保数据质量。例如,在电商销售数据中,可能存在价…...
【信息系统项目管理师-案例真题】2016下半年案例分析答案和详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题一【问题1】4 分【问题2】12 分【问题3】3 分【问题4】6 分试题二【问题1】3 分【问题2】4 分【问题3】8 分【问题4】5 分【问题5】5 分试题三【问题1】4 分【问题2】8 分【问题3】5 分【问题4】8 分试题一…...
前端学习-页面尺寸事件以及阻止默认行为(三十三)
目录 前言 页面尺寸事件 语法 检测屏幕宽度 获取宽高 元素尺寸的位置 总结 示例代码 阻止默认行为 阻止冒泡 语法 阻止冒泡如何做 阻止元素默认行为如何做 总结 前言 晚上好各位 页面尺寸事件 会在窗口尺寸改变的时候触发条件 语法 window.addEventListener(…...
人工智能领域-CNN 卷积神经网络 性能调优
在自动驾驶领域,对卷积神经网络(CNN)进行性能调优至关重要,以下从数据处理、模型架构、训练过程、超参数调整和模型部署优化等多个方面为你详细介绍调优方法,并给出相应的代码示例。 1. 数据处理 数据增强࿱…...
STM32的HAL库开发---高级定时器---输出比较模式实验
一、高级定时器输出比较模式实验原理 定时器的输出比较模式总共有8种,本文使用其中的翻转模式,当TIMXCCR1TIMXCNT时,翻转OC1REF的电平,OC1REF为输出参考信号,高电平有效,OC1REF信号连接到0C1上面ÿ…...
DeepSeek使用技巧大全(含本地部署教程)
在人工智能技术日新月异的今天,DeepSeek 作为一款极具创新性和实用性的 AI,在众多同类产品中崭露头角,凭借其卓越的性能和丰富的功能,吸引了大量用户的关注。 DeepSeek 是一款由国内顶尖团队研发的人工智能,它基于先进…...
python安装mitmproxy遇到的问题
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple 加-i https://pypi.tuna.tsinghua.edu.cn/simple是为了加速下载。 1、vc build-tools 发现下面错误。 需要安装vc build-tools,有些py包需要vc来编译。 安装路径:Micr…...
基于HTML生成网页有什么优势
在互联网时代,网页是人们获取信息、交流互动的重要窗口,而基于HTML生成网页,是搭建网络大厦的关键。HTML语法简洁直观,标签和属性语义明确,新手也能迅速上手,创建包含基础元素的网页,极大降低了…...
c++ template-3
第 7 章 按值传递还是按引用传递 从一开始,C就提供了按值传递(call-by-value)和按引用传递(call-by-reference)两种参数传递方式,但是具体该怎么选择,有时并不容易确定:通常对复杂类…...
【实战篇】巧用 DeepSeek,让 Excel 数据处理更高效
一、为何选择用 DeepSeek 处理 Excel 在日常工作与生活里,Excel 是我们频繁使用的工具。不管是统计公司销售数据、分析学生成绩,还是梳理个人财务状况,Excel 凭借其强大的功能,如数据排序、筛选和简单公式计算,为我们提供了诸多便利。但当面对复杂的数据处理任务,比如从…...
【prompt实战】AI +OCR技术结合ChatGPT能力项目实践(BOL提单识别提取专家)
本文原创作者:姚瑞南 AI-agent 大模型运营专家,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。(转载需经授权) 目录 1. 需求背景 2. 目标 3. BOL通用处理逻辑…...
黑马 Linux零基础快速入门到精通 笔记
初识Linux Linux简介 提及操作系统,我们可能最先想到的是windows和mac,这两者都属于个人桌面操作系统领域,而Linux则属于服务器操作系统领域。无论是后端软件、大数据系统、网页服务等等都需要运行在Linux操作系统上。 Linux是一个开源的操作…...
蓝桥杯真题 - 像素放置 - 题解
题目链接:https://www.lanqiao.cn/problems/3508/learning/ 个人评价:难度 3 星(满星:5) 前置知识:深度优先搜索 整体思路 深搜,在搜索过程中进行剪枝,剪枝有以下限制条件…...
即梦(Dreamina)技术浅析(六):多模态生成模型
多模态生成模型是即梦(Dreamina)的核心技术之一,旨在结合文本和图像信息,生成更符合用户需求的视觉内容。多模态生成模型通过整合不同类型的数据(如文本和图像),能够实现更丰富、更精准的生成效果。 1. 基本原理 1.1 多模态生成模型概述 多模态生成模型的目标是结合不…...
C++小等于的所有奇数和=最大奇数除2加1的平方。
缘由 三种思路解题:依据算术推导得到一个规律:小等于的所有奇数和等于最大奇数除以2加1的平方。将在后续发布,总计有十种推导出来的实现代码。 int a 0,aa 1,aaa 0;cin >> a; while (aa<a) aaa aa, aa 2;cout << aaa;i…...
react的antd表单校验,禁止输入空格并触发校验提示
首先需要用到form组件,在form.item内添加rules属性,写正则表达式 <Form.Itemlabel"员工姓名"name"name"rules{[{ required: true, message: 员工姓名 },{ pattern: /^(?!\s*$).$/, message: 不能全是空格 },]}> <Input p…...
Kubernetes架构原则和对象设计(三)
云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes常见问题解答 本文主要对kubernetes的核心技术概念和核心A…...
Qt+海康虚拟相机的调试
做机器视觉项目的时候,在没有相机或需要把现场采集的图片在本地跑一下做测试时,可以使用海康的虚拟相机调试。以下是设置步骤: 1.安装好海康MVS软件,在菜单栏->工具选择虚拟相机工具,如下图: 2.打开虚拟…...
485网关数据收发测试
目录 1.UDP SERVER数据收发测试 使用产品: || ZQWL-GW1600NM 产品||【智嵌物联】智能网关型串口服务器 1.UDP SERVER数据收发测试 A(TX)连接RX B(RX)连接TX 打开1个网络调试助手,模拟用户的UDP客户端设…...
【C#】一维、二维、三维数组的使用
在C#中,数组是用于存储固定数量相同类型元素的数据结构。根据维度的不同,可以分为一维数组、二维数组(矩阵阵列)、三维数组等。每增加一个维度,数据的组织方式就会变得更加复杂。 一维数组 一维数组是最简单的数组形…...
65【服务器攻击原理讲解】
我们经常可能会听说,某某的服务器被打了,被打死了,这里的打死并不一是指服务器直接死机 服务器有2个决定性参数 1:宽带,宽带越大,能传输的数据就越多 2:CPU,CPU越好能处理的运算…...
用AI写游戏3——模拟发牌
提示词 写一个python程序 ,输入参数为玩家数,输出参数为每个玩家的3张扑克牌 # 写一个python程序 ,输入参数为玩家数,输出参数为每个玩家的3张扑克牌 # 为了实现这个功能,我们可以使用Python的标准库random来生成随机…...
React 生命周期函数详解
React 组件在其生命周期中有多个阶段,每个阶段都有特定的生命周期函数(Lifecycle Methods)。这些函数允许你在组件的不同阶段执行特定的操作。以下是 React 组件生命周期的主要阶段及其对应的生命周期函数,并结合了 React 16.3 的…...
android 动态库加载机制
省流:android 不兼容 glibc,而是写了一套独立的 c 运行时库 (bionic libc),为移动设备和 google 自己推的东西做了大量优化。在这套工具链里,aosp 实现了一个兼容 bionic libc 的链接器,放到系统中代替 ld。 这个链接…...
PyTorch torch.sign函数介绍
torch.sign 是 PyTorch 库中用于计算输入张量每个元素符号的函数。下面从功能概述、函数原型、参数解释、返回值、使用示例以及与相关函数对比等方面详细介绍 torch.sign。 功能概述 torch.sign 函数会返回一个与输入张量形状相同的新张量,其中每个元素的值表示输…...
Flink CDC YAML:面向数据集成的 API 设计
摘要:本文整理自阿里云智能集团 、Flink PMC Member & Committer 徐榜江(雪尽)老师在 Flink Forward Asia 2024 数据集成(一)专场中的分享。主要分为以下四个方面: Flink CDC YAML API Transform A…...
计算机网络知识速记:TCP 与 UDP
计算机网络知识速记:TCP 与 UDP 一、概念 TCP (Transmission Control Protocol): 一个面向连接的协议,确保数据在传输过程中完整无误。通过建立连接和数据确认机制,提高数据传输的可靠性。是面向字节传输的。 UDP (User Datagram Protocol)…...
差分算法解析
差分(Difference Array)是一种常见的算法技巧,广泛应用于区间更新与区间查询的问题。它通过将数组的更新操作转化为数组的差分操作,使得某些类型的算法能在更短的时间内完成计算,尤其在处理频繁的区间更新时表现得尤为…...
makefile 的strip,filter,ifeq,ifneq基础使用
目录 一、strip1.1 语法1.2 示例1.3 使用场景 二、filter2.1 语法2.2 示例2.3 使用 * 和 ? 通配符2.4 结合使用2.5 使用场景 三、ifeq 和 ifneq3.1 ifeq3.1.1 语法3.1.2 示例 3.2 ifneq3.2.1 语法3.2.2 示例 3.3 典型使用场景3.3.1 根据版本控制编译选项:3.3.2 选择不同的源文…...
SOA(面向服务架构)全面解析
1. 引言 什么是SOA(面向服务架构) SOA(Service-Oriented Architecture,面向服务架构)是一种将应用程序功能以“服务”的形式进行模块化设计的架构风格。这些服务是独立的功能模块,它们通过定义明确的接口…...
B树详解及其C语言实现
目录 一、B树的基本原理 二、B树操作过程图形化演示 三、B树的应用场景 四、C语言实现B树及示例 五、代码执行结果说明 六、应用实例:文件系统目录索引 七、总结 一、B树的基本原理 B树(B-Tree) 是一种自平衡的树数据结构,…...
3.1 学习UVM中的uvm_component类分为几步?
文章目录 前言一、定义1.1 角色和功能:1.2 与其他UVM类的区别:1.3 主要属性和方法: 二、使用方法2.1 定义和实例化:2.2 生命周期管理:2.3 组件间通信: 三、何时使用3.1 使用场景3.2 适用组件3.3 与uvm_obje…...
python:面向对象之魔法方法
概念:主要是提供一些特殊的功能。 1.__init__方法: 一.不带参数: python中类似__xx__() __init__():初始化对象class Car():def __init__(self):self.color blueself.type suvdef info(self):print(f车的颜色是:{self.color})p…...
postgresql 游标(cursor)的使用
概述 PostgreSQL游标可以封装查询并对其中每一行记录进行单独处理。当我们想对大量结果集进行分批处理时可以使用游标,因为一次性处理可能造成内存溢出。 另外我们可以定义函数返回游标类型变量,这是函数返回大数据集的有效方式,函数调用者…...
vivado 7 系列器件时钟
7 系列器件时钟 注释: 本章节以 Virtex -7 时钟源为例。 Virtex-6 的时钟资源与此类似。如果使用不同的架构,请参阅有关器件的 《时 钟资源指南》 [ 参照 40] 。 Virtex-6 和 Virtex-7 器件内含 32 个称为 BUFG 的全局时钟缓存。 BUFG 可满…...
Vue 3 部分新特性解析
1. 引言 Vue 3 引入了许多新特性和改进,使得开发更加高效和灵活。本文将深入探讨 Vue 3 的高阶部分,包括 Composition API、自定义指令、插件开发、状态管理和性能优化。 2. Composition API 2.1 引入 Composition API Composition API 是 Vue 3 中引…...
ubuntu24.04安装布置ros
最近换电脑布置机器人环境,下了24.04,但是网上的都不太合适,于是自己试着布置好了,留作有需要的人一起看看。 文章目录 目录 前言 一、确认 ROS 发行版名称 二、检查你的 Ubuntu 版本 三、安装正确的 ROS 发行版 四、对于Ubuntu24…...