windows电脑上安装llama-factory实现大模型微调
一、安装环境准备
这是官方给的llama-factory安装教程,安装 - LLaMA Factory,上面介绍了linux系统上以及windows系统上如何正确安装。大家依照安装步骤基本能够完成安装,但是可能由于缺少经验或者相关的知识导致启动webUi界面运行相应内容时会报各种错误。
特别需要注意的是:一定要有英伟达的显卡。如果没有显卡的GPU加速,模型的训练时间是非常长的。我的电脑配置是i5-14代的CPU,4070显卡12G显存,64G内存,通过写代码微调deepseek-r1:1.5B模型显示程序运行需要91个小时(具体需要所长的时间我也不确定,等待12个小时训练进度10%),我把对应的代码(安装的pytorch是CPU版本的)放在文章的结尾处,有需要的小伙伴自取。
我在安装llama-factory的过程中一共遇到两种错误情况:
(1)pytorch安装的版本错误,导致模型在运行的过程找不到CUDA;
(2)在模型训练的过程中出现“RuntimeError: CUDA Setup failed despite GPU being available”的错误,导致训练中断。
今天刚把windows上的llama-factory安装完成,后续会更新我在Ubuntu系统上安装llama-factory遇到的问题以及处理方法。
下面是我在windows系统上安装llama-factory上安装的配置,大家可以参考一下。
| 电脑系统 | windows 11专业版,版本号是23H2 |
| python环境 | Anaconda3-2024.10-1-Windows-x86_64 |
| cuda | cuda_12.2.0_536.25_windows |
| pytorch | windows版本CUDA12.4 |
二、安装相应的软件
1、安装python环境
我们直接从anaconda官网上下载对应的安装包即可,双击打开之后按照默认选项一步一步安装即可。也可以更改安装的位置如D盘。
特别需要注意的是如果在安装过程中出现添加path环境变量的选项一定要勾选上,否则就需我们手动配置环境变量。不仅仅是对anaconda,后续安装所有的软件也需要遵照同样的原则。
anaconda安装完毕后,我们需要在自己的电脑上配置运行llama-factory的虚拟环境。这里为甚选择anaconda配置python开发环境而不是之家安装python,大家可以自行百度。
conda create --name largeLanguageModelLearn python=3.12
在anaconda的powershell prompt下输入如下的命令构建大语言模型训练的环境,激活该开发环境的命令如下
conda activate largeLanguageModelLearn
以后我们关于大语言模型所有的包都安装在该环境下。
2、安装CUDA
安装CUDA是为了能够在训练模型的时候使用。首先需要确定自己windows系统的规格,下载安装的CUDA一定要和自己系统的规格对应,否则会导致后续模型加载或者训练的过程中提示找不到CUDA。CUDA的网址为: https://developer.nvidia.com/cuda-gpus。


依据我的系统规格,我选择的是Windows—》x86_64—》11—》exe(local)版本。
在安装CUDA的时候我选择自定义安装,把所有的需要安装的项都勾选上。另外不要忘记勾选自动配置环境变量选项。
CUDA安装完成后,打开 cmd 输入 nvcc -V ,若出现类似内容则安装成功。

3、安装llama-factory
安装llama-factory我们只需安装官方的教程即可。
下载llama-factory至本地:我们可以使用官方中给的方法下载,这种下载方式方便对llama-factory框架更新。我这里使用的是手动下载llama-factory框架的各个文件至本地。对应的网址如下:
https://github.com/hiyouga/LLaMA-Factory.git
进入该网址后,点击Code按钮选择download ZIP即可下载至本地。
下载至本地后,就需要安装该框架。我把该框架放在D盘某个目录下,在下图中给出我安装该框架的操作步骤:

step1:进入到下载LLaMA-Factory的目录下;
step2:激活我们之前为学习大语言模型创建的python环境;
step3:在该环境下下载对应的安装包,也可以安装需要增加额外的包,额外需要的包如下图

4、启动llama-factory的webUI界面
在anaconda的powershell prompt中输入:llamafactory-cli webui,注意要在LLaMA-Factory的目录下启动,除非你将llamafactory-cli webui配置了全局变量。

三、处理开头提出的两个错误
我在安装llama-factory的过程中一共遇到两种错误情况:
(1)pytorch安装的版本错误,导致模型在运行的过程找不到CUDA;
处理方法:安装GPU版本的pytorch,在conda环境下运行如下命令即可实现安装:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
(2)在模型训练的过程中出现“RuntimeError: CUDA Setup failed despite GPU being available”的错误,导致训练中断。
处理方法:在网上收到的教程是执行如下的命令
pip uninstall bitsandbytes
pip install bitsandbytes-windows
但是执行上述的命令并没有解决我的问题,最后发现执行如下的代码可以解决,对应的命令如下:
pip uninstall bitsandbytes
pip install bitsandbytes-cuda113
pip uninstall bitsandbytes-cuda113
pip install bitsandbytes
我曾经在B站看过一个大佬的课程,他说在运行过程中所有的错误无非两种情况造成的。情况1:安装环境出现冲突(包的依赖出现冲突或者CUDA的版本没有安装对);情况2:权限不够(sudo运行或者管理员下运行即可解决,一般报错信息中会出现permission字样)
代码微调
main方法
'''
需要的依赖torchtransformersdatasetspeftbitsandbytes
'''# 测试模型是否可用
from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments
# 加载模型 Hugging face提前下载
model_name = r'D:\pycharmProject\firstProject\大模型微调\DeepSeekR1DistillQwen1.5B'
tokenizer = AutoTokenizer.from_pretrained(model_name)# 模型加载成功之后注释model代码,否则每次都占用内存 (如果内存不够,可以使用device_map='auto')
model = AutoModelForCausalLM.from_pretrained(model_name,device_map='auto',trust_remote_code=True)for name, param in model.named_parameters():if param.is_meta:raise ValueError(f"Parameter {name} is in meta device.")print('---------------模型加载成功-------------')# 制作数据集
from data_prepare import samples
import json
with open('datasets.jsonl','w',encoding='utf-8') as f:for s in samples:json_line = json.dumps(s,ensure_ascii=False)f.write(json_line + '\n')else:print('-------数据集制作完成------')# 准备训练集和测集
from datasets import load_dataset
dataset = load_dataset('json',data_files={'train':'datasets.jsonl'},split='train')
print('数据的数量',len(dataset))train_test_split = dataset.train_test_split(test_size=0.1)
train_dataset = train_test_split['train']
eval_dataset = train_test_split['test']
print('训练集的数量',len(train_dataset))
print('测试集的数量',len(eval_dataset))print('--------完成训练数据的准备工作--------')# 编写tokenizer处理工具
def tokenize_function(examples):texts = [f"{prompt}\n{completion}" for prompt , completion in zip(examples['prompt'],examples['completion'])]tokens = tokenizer(texts,truncation=True,max_length=512,padding="max_length")tokens["labels"] = tokens["input_ids"].copy()return tokenstokenized_train_dataset = train_dataset.map(tokenize_function,batched=True)
tokenized_eval_dataset = eval_dataset.map(tokenize_function,batched=True)print('---------完成tokenizer-------------')
# print(tokenized_eval_dataset[0])# 量化设置import torch
model = AutoModelForCausalLM.from_pretrained(model_name,torch_dtype=torch.bfloat16,device_map="auto"
)
print('-----------完成量化模型的加载-----------------')# lora设置
from peft import LoraConfig,get_peft_model,TaskType
lora_config = LoraConfig(r=8,lora_alpha=16,target_modules=["q_proj","v_proj"],lora_dropout=0.05,bias="none",task_type=TaskType.CAUSAL_LM
)
model = get_peft_model(model,lora_config)
model.print_trainable_parameters()
print('-----------完成lora模型的加载-----------------')# 设置训练参数
training_args = TrainingArguments(output_dir="./results",num_train_epochs=3,per_device_train_batch_size=8,per_device_eval_batch_size=8,gradient_accumulation_steps=4,fp16=True,evaluation_strategy="steps",save_steps=100,eval_steps=10,learning_rate=3e-5,logging_dir="./logs",run_name='deepseek1.5b',# 后期增加的内容label_names=["labels"], # 必须显式指定remove_unused_columns=False, # 确保不自动删除标签字段
)
print('--------训练参数设置完毕----------')# 定义训练器
from transformers import Trainer
trainer = Trainer(model=model,args=training_args,train_dataset=tokenized_train_dataset,eval_dataset=tokenized_eval_dataset
)print('--------训练器定义完毕----------')
print('----------开始训练-------------')
trainer.train()
print('----------训练完成-------------')
数据集
samples = [{"prompt": "请解释什么是神经网络?","completion": "神经网络是受生物神经系统启发的计算模型,由相互连接的神经元层组成。它通过前向传播处理输入数据,反向传播调整参数,最终实现模式识别和预测功能。"},{"prompt": "如何预防计算机病毒?","completion": "建议采取以下措施:1. 安装杀毒软件并定期更新;2. 不打开可疑邮件附件;3. 使用强密码保护系统;4. 定期备份重要数据。"},{"prompt": "神经网络的工作原理?","completion": "1. 前向传播;2. 损失计算;3. 反向传播。"},{"prompt": "神经网络的类型与变体?","completion": "1. 前馈神经网络;2. 卷积神经网络;3. 循环神经网络;4. 生成对抗网络。"},{"prompt": "神经网络的应用领域?","completion": "1. 图像与语音识别;2. 自然语言处理;3. 金融与预测;4. 自动驾驶。"},{"prompt": "区块链技术的主要特点是什么?","completion": "三个核心特征:1. 去中心化网络结构;2. 不可篡改的分布式账本;3. 智能合约自动执行。"},{"prompt": "如何快速入门Python编程?","completion": "推荐路径:1. 安装Anaconda环境;2. 学习基础语法;3. 实践小项目开发;4. 参与开源社区贡献。"},{"prompt": "云计算服务的部署模式有哪些?","completion": "主要类型:公有云(如AWS)、私有云(企业自建)、混合云(两者结合)、社区云(多组织共享)。"},{"prompt": "什么是GDPR数据保护法规?","completion": "欧盟通用数据保护条例,要求企业:1. 明确用户数据使用范围;2. 提供数据可移植性;3. 72小时内报告数据泄露事件。"},{"prompt": "如何预防糖尿病?","completion": "健康建议:控制糖分摄入、定期血糖检测、保持适度运动、维持正常体重、避免吸烟饮酒。"},{"prompt": "股票与债券的主要区别?","completion": "差异点:股票代表所有权(高风险高收益),债券体现债权(固定利率回报),发行主体及清偿顺序不同。"},{"prompt": "如何提高英语听力水平?","completion": "训练方法:每日精听VOA常速、跟读影视片段、使用播客泛听、建立听力高频词库、模拟真实对话场景。"},{"prompt": "物联网设备的安全风险点有哪些?","completion": "主要隐患:1. 弱密码认证;2. 固件更新漏洞;3. 数据传输未加密;4. 物理接口暴露风险。"},{"prompt": "正确刷牙的七个步骤","completion": "巴氏刷牙法要点:1.45度角牙龈接触;2.小幅度水平颤动;3.涵盖所有牙面;4.舌侧清洁;5.每次至少2分钟。"},{"prompt": "处理厨房油火的正确方法","completion": "应急步骤:1.立即关闭气源;2.用锅盖窒息火焰;3.切勿泼水;4.小苏打覆盖灭火;5.及时拨打119。"},{"prompt": "量子计算机与传统计算机的核心差异?","completion": "三个关键区别:1. 采用量子比特(叠加态)替代二进制;2. 支持量子并行计算;3. 适用于破解加密算法等特定问题。"},{"prompt": "制定个人理财规划的五个步骤","completion": "操作流程:1. 评估财务状况 2. 设定财务目标 3. 风险承受测试 4. 资产配置规划 5. 定期复盘调整"},{"prompt": "无人机飞行法规的核心要求","completion": "主要限制:1. 120米限高 2. 禁飞区电子围栏 3. 视距内操作 4. 夜间飞行需申请 5. 商业用途需许可证"},{"prompt": "AI绘画工具的伦理争议点","completion": "三大争议:1. 版权作品训练数据;2. 艺术家人力替代;3. 深度伪造滥用风险;4. 创作署名权归属问题"},{"prompt": "野外遇险的SOS求救信号规则","completion": "国际标准:三次一组(火光/声音),间隔1分钟重复。地面标志需大于3米,推荐三角形或直线排列。"},{"prompt": "生物降解塑料的技术原理","completion": "核心机制:1. 淀粉基材料水解 2. 微生物分解PHB酯键 3. 光敏添加剂促进氧化 4. 堆肥条件温湿度控制"},{"prompt": "选择深度学习框架的考量因素","completion": "评估维度:1. 社区活跃度 2. 文档完整性 3. 硬件兼容性 4. 预训练模型库 5. 部署便利性"},{"prompt": "应对DDoS攻击的防护策略","completion": "五层防御:1. 流量清洗中心 2. CDN分发 3. 访问频率限制 4. IP黑名单 5. 负载均衡冗余"},{"prompt": "碳中和实现的关键技术路径","completion": "四大方向:1. 可再生能源发电 2. 碳捕集与封存 3. 工业流程电气化 4. 碳交易市场机制完善"},{"prompt": "构建家庭智能安防系统的必备组件","completion": "基础配置:智能门锁+摄像头+烟雾传感器+水浸检测+网关中枢+手机联动APP"},{"prompt": "疫苗研发的临床试验阶段划分","completion": "三期流程:I期(安全性测试,数十人)→ II期(剂量确定,数百人)→ III期(有效性验证,数千人)"},{"prompt": "选择云服务器的硬件配置策略","completion": "决策矩阵:1. CPU核数≈并发请求量 2. 内存≥应用峰值使用量×2 3. 存储类型按IO需求选择"},{"prompt": "企业危机公关的5R原则","completion": "应对策略:Regret(真诚致歉)→ Reform(改进方案)→ Restitution(补偿措施)→ Recovery(恢复行动)→ Reinforcement(制度完善)"},{"prompt": "智能合约的典型应用场景","completion": "三大领域:1. 去中心化金融(DeFi) 2. 供应链溯源 3. 数字版权交易 4. 自动理赔保险"},{"prompt": "防范电信诈骗的五个原则","completion": "安全守则:1. 不透露验证码 2. 官方渠道核实 3. 慎重点击链接 4. 警惕高收益理财 5. 家属涉案必报警确认"},{"prompt": "影响房价的主要经济指标","completion": "关键因素:1. 按揭利率 2. 土地供应量 3. 人口迁移趋势 4. 租金收益率 5. 政策调控力度"},{"prompt": "自动驾驶的SAE分级标准","completion": "等级定义:L0(人工驾驶)→L1(辅助转向/制动)→L2(部分自动化)→L3(条件自动)→L4(高度自主)→L5(完全自主)"},{"prompt": "健康餐食的营养搭配原则","completion": "黄金比例:碳水50%+蛋白质20%+脂肪30%,每餐包含膳食纤维,控制GI值<55,钠摄入<2000mg/天"},{"prompt": "元宇宙的关键技术支撑","completion": "六大基石:区块链+AR/VR+5G网络+AI+数字孪生+边缘计算,需交互设备与去中心化经济系统配合"},{"prompt": "设计问卷调查的七个注意事项","completion": "要点提醒:1.问题中立 2.选项穷尽 3.逻辑排序 4.避免复合问 5.控制题量 6.预测试用 7.明确填写说明"},{"prompt": "敏捷开发中的每日站会核心规则","completion": "三大铁律:1. 15分钟准时结束 2. 回答三问题(昨日进展/今日计划/阻塞障碍)3. 不展开技术讨论"},{"prompt": "卫星互联网的频段分配策略","completion": "主流方案:Ka波段(26.5-40GHz)高频段用于高速传输,Ku波段(12-18GHz)保障雨衰稳定性,V波段提供扩容空间"},{"prompt": "初创企业股权分配陷阱规避方法","completion": "五个警示:1. 避免均分股权 2. 设立成熟期条款 3. 预留期权池10-20% 4. 明确决策机制 5. 定期动态调整"},{"prompt": "脑机接口的信号传输原理","completion": "三层处理:1. 电极捕获神经电信号 2. 模数转换与噪声过滤 3. 机器学习算法解码运动意图"},{"prompt": "选择留学国家的评估维度","completion": "八大指标:教育质量、移民政策、就业前景、生活成本、安全系数、文化适应、语言门槛、签证通过率"},{"prompt": "工业机器人可靠性测试标准","completion": "关键测试项:MTBF(平均无故障时间)≥5万小时,重复定位精度±0.02mm,负载循环测试10万次无故障"},{"prompt": "构建私域流量的核心步骤","completion": "四步走策略:1. 企业微信沉淀用户 2. 内容运营提升粘性 3. 社群分层管理 4. 自动化营销转化"},{"prompt": "FDA医疗器械审批分类标准","completion": "三类管理:Ⅰ类(低风险,登记备案)Ⅱ类(中等风险,510(k)审查)Ⅲ类(高风险,PMA临床验证)"},{"prompt": "光伏电站的选址评估要素","completion": "六大参数:年日照时长>1400小时,坡度<15°,电网接入距离<10km,土地性质合规,年均温度<25℃,无阴影遮挡"},{"prompt": "深度学习模型压缩技术对比","completion": "方案对比:知识蒸馏(保持精度)vs 权重剪枝(提升速度)vs 量化训练(减少存储)vs 低秩分解(降低计算量)"},{"prompt": "跨境电商物流模式选择策略","completion": "决策树:小件选邮政/专线(成本优先),高货值用商业快递(时效优先),大件货物走海外仓(综合成本最优)"},{"prompt": "基因编辑技术的脱靶率控制方案","completion": "三重保障:1. 高保真Cas9变体 2. 双重sgRNA验证 3. 全基因组脱靶检测(GUIDE-seq/CIRCLE-seq)"},{"prompt": "智能家居Zigbee与Wi-Fi协议选型建议","completion": "选择标准:传输距离远/低功耗设备选Zigbee,高速率/视频传输用Wi-Fi 6,跨平台兼容考虑Matter协议"},{"prompt": "专利申请的创造性判断标准","completion": "三要素审查:1. 现有技术差异 2. 技术效果显著性 3. 本领域技术人员非显而易见性"},{"prompt": "新能源汽车电池回收流程","completion": "四阶段处理:检测分级→梯次利用(储能系统)→拆解再生(金属提取)→环保处置(电解液无害化)"},{"prompt": "医院HIS系统升级风险评估要点","completion": "五类风险:数据迁移完整性、业务中断可能性、新老系统兼容性、人员操作适应性、应急回滚方案完备性"},{"prompt": "数字人民币的离线支付实现原理","completion": "双离线技术:NFC近场通信+硬件加密芯片,通过碰一碰完成端对端加密数据交换,联网后后台结算"},{"prompt": "工业互联网安全靶场建设要素","completion": "必备模块:虚实映射系统、攻击渗透测试环境、安全防护验证平台、红蓝对抗演练场景库、人才培养课程体系"},{"prompt": "绿色建筑LEED认证评分标准","completion": "七大维度:可持续场地(15%)、用水效率(10%)、能源气候(35%)、材料资源(13%)、室内质量(16%)、创新设计(6%)、地域优先(5%)"},{"prompt": "微波光子雷达的技术突破点","completion": "前沿方向:光生微波超高频率、光子波束成形精度、光电转换效率提升、抗干扰信号处理算法"},{"prompt": "知识图谱构建的五个阶段","completion": "实施流程:1. 知识抽取 2. 数据清洗 3. 实体链接 4. 关系建模 5. 推理验证"},{"prompt": "智能客服的语义理解优化方案","completion": "四维提升:领域词典扩充、意图识别模型微调、上下文记忆增强、多轮对话状态跟踪"},{"prompt": "5G网络切片的应用场景划分","completion": "三大场景类型:eMBB(增强移动宽带)、uRLLC(超可靠低延迟)、mMTC(大规模物联网)"},{"prompt": "实验室危险化学品管理规范","completion": "五项制度:双人双锁存储、使用登记追溯、MSDS随取随查、防护装备配备、应急预案演练"},{"prompt": "影响光伏板发电效率的环境因素","completion": "关键参数:光照强度(>800W/m²)、环境温度(每升1℃效率降0.4%)、积尘程度(每月清洗至少1次)、组件朝向(正南倾角±10°)"},{"prompt": "RPA流程自动化实施方法论","completion": "六步路线图:流程识别→可行性评估→工具选型→开发部署→效果监控→持续优化"},{"prompt": "食品添加剂使用的合法性标准","completion": "合规四要素:在GB 2760规定范围内、用量不超过最大限量、工艺必要性证明、标签完整标注"},{"prompt": "智慧港口自动化升级关键技术","completion": "核心技术栈:5G通信网络、场桥远程操控、AGV路径规划、数字孪生仿真、智能闸口OCR识别"},{"prompt": "脑卒中康复训练的阶段规划","completion": "三阶段方案:急性期(被动运动防萎缩)→恢复期(主动训练重建功能)→后遗症期(辅助器具适应性训练)"},{"prompt": "影响FPGA芯片选型的核心参数","completion": "关键指标:逻辑单元数量(LE)、存储带宽(Mbps)、DSP模块密度、收发器速率、功耗比(GFLOPS/W)"}
]
相关文章:
windows电脑上安装llama-factory实现大模型微调
一、安装环境准备 这是官方给的llama-factory安装教程,安装 - LLaMA Factory,上面介绍了linux系统上以及windows系统上如何正确安装。大家依照安装步骤基本能够完成安装,但是可能由于缺少经验或者相关的知识导致启动webUi界面运行相应内容时…...
汽车无人驾驶系统中的防撞设计
一、系统方案介绍 无人驾驶汽车的防撞系统是保障行车安全的核心模块,本文设计的系统以STM32F103C8T6单片机为主控制器,结合超声波测距、WiFi通信、人机交互等模块,实现障碍物实时检测、动态阈值设置、多级报警和数据可视化功能。系统通过软…...
sql server 版本更新日期
SQL Server 2019 内部版本(KB4518398) - SQL Server | Microsoft Learn SQL Server 的最新更新和版本历史记录 - SQL Server | Microsoft Learn sql server 2019 版本更新时间和补丁版本号...
Linux网络 DNS
DNS(Domain Name System) TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序 , 但是 IP 地址不方便记忆。于是人们发明了一种叫主机名的东西, 是一个字符串 , 并且使用 hosts 文件来描述主机名和 IP 地址的关系 。 最初 , 通过互连网信息中…...
EMQX中不同端口对应的接入协议
使用tcp接入时应使用mqtt://IP:1883 使用ws接入时应使用ws://IP:8083...
SpringBoot原理-03.自动配置-方案
一.自动配置原理 探究自动配置原理,就是探究spring是如何在运行时将要依赖JAR包提供的配置类和bean对象注入到IOC容器当中。我们当前准备一个maven项目itheima-utils,这里面定义了bean对象以及配置类,用来模拟第三方提供的依赖,首…...
Python 如何实现烟花效果的完整代码
文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...
Winbox5怎样设置上网
要让连接到交换机的设备都能上网,需在MikroTik路由器(通过WinBox配置)上完成以下步骤。假设您的网络拓扑是:外网IP配置在路由器的WAN口,内网设备通过交换机连接到路由器的LAN口。 步骤 1:配置内网接口&…...
(KTransformers) RTX4090单卡运行 DeepSeek-R1 671B
安装环境为:ubuntu 22.04 x86_64 下载模型 编辑文件vim url.list 写入如下内容 https://modelscope.cn/models/unsloth/DeepSeek-R1-GGUF/resolve/master/DeepSeek-R1-Q4_K_M/DeepSeek-R1-Q4_K_M-00001-of-00009.gguf https://modelscope.cn/models/unsloth/Dee…...
【软考-架构】1.2、指令系统-存储系统-cache
GitHub地址:https://github.com/tyronczt/system_architect ✨资料&文章更新✨ 指令系统 计算机指令执行过程:取指令一一分析指令一一执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据…...
CI/CD与容器化技术核心知识点的QA
CI/CD与容器化技术核心知识点的Q&A 以下是CI/CD和容器化技术的经典必考面试题及详解,结合行业实践与理论核心整理而成: 一、CI/CD核心概念与流程 简述CI/CD的核心目标与实现价值 答案:通过自动化流水线实现快速、可靠的软件交付,减少人工干预,提升开发与运维协作效率…...
动态规划刷题
文章目录 动态规划三步问题题目解析代码 动态规划 1. 状态表示:dp[i],表示dp表中i下标位置的值 2. 状态转移方程:以i位置位置的状态,最近的一步来划分问题,比如可以将状态拆分成前状态来表示现状态,dp[i] …...
不谓侠--记录
音乐《不谓侠》 衣襟上 别好了晚霞 余晖送我牵匹老马 正路过 烟村里人家 恰似当年故里正飞花 醉过风 喝过茶 寻常巷口寻个酒家 在座皆算老友 碗底便是天涯 天涯远 无处不为家 蓬门自我也像广厦 论意气 不计多或寡 占三分便敢自称为侠 刀可捉 拳也耍 偶尔闲来…...
2025-03-01 学习记录--C/C++-C语言 整数类型对比
C语言 整数类型对比 类型位数范围(有符号)范围(无符号)格式化符号char8-128 到 1270 到 255%c 或 %hhdshort16-32,768 到 32,7670 到 65,535%hdint32-2,147,483,648 到 2,147,483,6470 到 4,294,967,295%dlong32 或 64-2,147,483…...
Python核心技术,Django学习基础入门教程(附环境安装包)
文章目录 前言1. 环境准备1.1Python安装1.2选择Python开发环境1.3 创建虚拟环境1.4 安装 Django 2. 创建 Django 项目3. Django项目结构介绍4. 启动开发服务器5. 创建 Django 应用6. 应用结构介绍7. 编写视图函数8. 配置 URL 映射9. 运行项目并访问视图10. 数据库配置与模型创建…...
MFC中CMutex类和CSingleLock类,配合使用疑惑
在使用CMutex过程中,看到别人使用了CSingleLock类,想着明明CMutex已经可以实现线程同步了,为什么还有使用CSingleLock类呢? 在MFC中,虽然CMutex类本身可以实现线程同步,但通常会与CSingleLock类一起使用&am…...
爬虫系列之【数据解析之正则】《二》
目录 前言 一、正则基本使用 1.1 导包 1.2 接口方法 1.3 换行匹配问题 二、实战案例 完整代码 前言 在爬虫工作中,我们主要会遇到两种类型的文本数据: JSON格式数据 HTML文档数据 对于JSON字符串数据,通常使用Python的字典操作进行键…...
HTML AI 编程助手
HTML AI 编程助手 引言 随着人工智能技术的飞速发展,编程领域也迎来了新的变革。HTML,作为网页制作的基础语言,与AI技术的结合,为开发者带来了前所未有的便利。本文将探讨HTML AI编程助手的功能、应用场景以及如何利用它提高编程…...
RFID工具柜DW-G104R|智能存储,便捷高效
一、行业背景 RFID智能工具柜(DW-G104R)RFID工具管理柜是一种结合RFID技术和智能柜设备的新型工具管理设施,通过自动化管理可以提高工具管理的效率和准确性。 在工业生产中,工具柜是工具存储和管理的重要设备。传统工具柜存在管…...
【前端面试】如何不通过正则:验证IP地址合法性
前言 在 Web 开发中,验证用户输入的 IP 地址是否合法是一个常见需求 面试中也会问到 通常,我们会使用正则表达式来完成这个任务,因为它简洁高效。然而,正则表达式对于初学者来说可能有些晦涩难懂。本文将介绍一种不使用正则表达…...
中间件专栏之Redis篇——Redis的三大持久化方式及其优劣势对比
Redis是内存数据库,它的数据一般存放在内存中,一旦断电或者宕机,存在内存中的数据就会丢失。当然,它也具备数据持久化的能力,本文就将介绍Redis的三种持久化方式及其优劣势对比。 一、RDB(Redis Database&…...
Linux软连接与时区日期
软连接 使用ln命令创建软连接。 在系统中创建软连接,可以将文件,文件夹连接到其他为止。 类似于Windows系统的快捷方式。 语法:ln -s 参数1 参数2 -s选项,创建软连接。 参数1,被链接的文件或文件夹。 参数2࿰…...
安全测试之五:SQL Server注入漏洞几个实例
示例 1:在 GET 请求中测试 SQL 注入 最简单且有时最有效的情况是针对登录页面进行测试。当登录页面请求用户输入用户名和密码时,攻击者可以尝试输入以下字符串 “ or 11”(不包含双引号): https://vulnerable.web.ap…...
2024 ChatGPT大模型技术场景与商业应用视频精讲合集(45课).zip
2024ChatGPT大模型技术场景与商业应用视频精讲合集,共十三章,45课。 01. 第一章 ChatGPT:通用人工智能的典范 1.1 ChatGPT概述 .mp4 1.2 通用能力 .mp4 1.3 通用人工智能风口 .mp4 02. 第二章 大模型:ChatGPT的核心支撑 2.1 底层…...
HTTP四次挥手是什么?
四次挥手,这是TCP协议用来关闭连接的过程。四次挥手是确保两个主机之间能够安全、可靠地关闭连接的重要机制。我会用简单易懂的方式来讲解,帮助你理解它的原理和过程。 1. 什么是四次挥手? 定义 四次挥手是TCP协议用来关闭连接的过程。它通…...
前端内存泄漏的几种情况及方案
前端内存泄漏是常见但容易被忽视的问题,可能导致页面卡顿、崩溃或性能下降。以下是几种典型场景及解决方案: 1. 未清理的全局变量 场景: 意外创建全局变量(未使用 var/let/const)。主动挂载到 window 的大对象未释放…...
人工智能之数学基础:线性代数中的特殊矩阵
本文重点 矩阵是数学中一个重要的工具,在各个领域都有广泛的应用。其中,一些特殊矩阵由于具有独特的性质,在特定的问题中发挥着关键作用。 单位矩阵 单位矩阵是一种特殊的方阵,在矩阵乘法中起到类似于数字 “1” 的作用。对于一个的单位矩阵,其主对角线元素全为 1,其余…...
单例模式---是 Spring 容器的核心特性之一
1.最近面试让手写一个单例;我一直知道单例;但是一直很困惑;工作中也没怎么用过;为什么面试总问;今天我才知道思考出来;单例是spring容器的核心特性;很多知识我只知道是什么;但是没有…...
代码随想录算法【Day59】
47. 参加科学大会 思路 使用Dijkstra 算法 计算从起点(节点 1)到终点(节点 n)的最短路径。用优先队列(小顶堆) 维护当前未访问的最短路径节点,每次选择距离最短的未访问节点进行更新ÿ…...
Linux篇——工具
在有了前面的基础知识后,我们现在基本能够使用Linux的相关基本操作了,但我们知道,没有工具我们是无法便捷地实现某些功能的,因此我们这篇内容来谈谈Linux中的工具。 一、软件包管理器yum 我们知道,我们要想获得一个软…...
