【昇腾】【训练】800TA2-910B使用LLaMA-Factory训练Qwen
文章目录
- 1. 使用docker安装
- 1.1 配置docker
- 1. 2 拉取 LLaMA-Factory
- 1.3 修改配置
- 2. 下载模型
- 3. 准备训练数据
- 3.1 下载数据集
- 3.2 自定义数据集配置
- 4. 训练
- 4.1 训练配置
- 4.2 启动训练
- 4.3 训练效果测试
- 5. 合并权重
更好的阅读体验:传送门
服务器:800TA2
芯片:910B3
模型:Qwen2.5-14B-Instruct
数据集:魔搭自定义数据集,alpaca格式
1. 使用docker安装
1.1 配置docker
配置docker
镜像源:
sudo vi /etc/docker/daemon.json
填入:
{"registry-mirrors": ["https://2t697950.mirror.aliyuncs.com","https://docker.1ms.run","https://docker.xuanyuan.me"]
}
安装 docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/v2.33.0/docker-compose-linux-aarch64 -o /usr/local/bin/docker-compose
chmod 777 /usr/local/bin/docker-compose
docker-compose -v
1. 2 拉取 LLaMA-Factory
# 以下环境都基于路径 /home/aicc1
mkdir /home/aicc1
cd /home/aicc1
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory/docker/docker-npu
1.3 修改配置
请保证docker
镜像源已配置完毕。
修改Dockerfile
、 docker-compose.yml
,中挂载的设备数量、python镜像源。
默认只挂载了一个卡,下面的配置通过添加devices
挂载了8张卡。
挂载了目录
/home/aicc1
,用于与宿主机数据交互。具体请修改为你自己的文件路径
docker-compose.yml
:
services:llamafactory:build:dockerfile: ./docker/docker-npu/Dockerfilecontext: ../..args:INSTALL_DEEPSPEED: "false"PIP_INDEX: https://pypi.tuna.tsinghua.edu.cn/simplecontainer_name: llamafactoryvolumes:- ../../hf_cache:/root/.cache/huggingface- ../../ms_cache:/root/.cache/modelscope- ../../om_cache:/root/.cache/openmind- ../../data:/app/data- ../../output:/app/output- /usr/local/dcmi:/usr/local/dcmi- /usr/local/bin/npu-smi:/usr/local/bin/npu-smi- /usr/local/Ascend/driver:/usr/local/Ascend/driver- /etc/ascend_install.info:/etc/ascend_install.info- /home/aicc1:/home/aicc1- /home/aicc2:/home/aicc2ports:- "7860:7860"- "8000:8000"ipc: hosttty: trueshm_size: "16gb"stdin_open: truecommand: bashdevices:- /dev/davinci0- /dev/davinci1- /dev/davinci2- /dev/davinci3- /dev/davinci4- /dev/davinci5- /dev/davinci6- /dev/davinci7- /dev/davinci_manager- /dev/devmm_svm- /dev/hisi_hdcrestart: unless-stopped
Dockerfile
:
# Use the Ubuntu 22.04 image with CANN 8.0.rc1
# More versions can be found at https://hub.docker.com/r/ascendai/cann/tags
# FROM ascendai/cann:8.0.rc1-910-ubuntu22.04-py3.8
FROM ascendai/cann:8.0.0-910b-ubuntu22.04-py3.10
# FROM ascendai/cann:8.0.rc1-910-openeuler22.03-py3.8
# FROM ascendai/cann:8.0.rc1-910b-openeuler22.03-py3.8# Define environments
ENV DEBIAN_FRONTEND=noninteractive# Define installation arguments
ARG INSTALL_DEEPSPEED=false
ARG PIP_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple
ARG TORCH_INDEX=https://mirrors.aliyun.com/pytorch-wheels/cpu
ARG HTTP_PROXY=# Set the working directory
WORKDIR /app# Set http proxy
RUN if [ -n "$HTTP_PROXY" ]; then \echo "Configuring proxy..."; \export http_proxy=$HTTP_PROXY; \export https_proxy=$HTTP_PROXY; \fi# Install the requirements
COPY requirements.txt /app
# RUN python -m pip install --upgrade pip && \
# pip config set global.index-url "$PIP_INDEX" && \
# pip config set global.extra-index-url "$TORCH_INDEX" && \
# if [ -n "$HTTP_PROXY" ]; then \
# python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --proxy=$HTTP_PROXY -r requirements.txt; \
# else \
# python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt; \
# fiRUN python -m pip install --upgrade pip && \pip config set global.index-url "$PIP_INDEX" && \pip config set global.extra-index-url "$TORCH_INDEX" && \pip install --retries=3 --timeout=60 \-r requirements.txt \-i "$PIP_INDEX" \--extra-index-url "$TORCH_INDEX"
# Copy the rest of the application into the image
COPY . /app# Install the LLaMA Factory
RUN EXTRA_PACKAGES="torch-npu,metrics"; \if [ "$INSTALL_DEEPSPEED" == "true" ]; then \EXTRA_PACKAGES="${EXTRA_PACKAGES},deepspeed"; \fi; \if [ -n "$HTTP_PROXY" ]; then \pip install --proxy=$HTTP_PROXY -e ".[$EXTRA_PACKAGES]"; \else \pip install -e ".[$EXTRA_PACKAGES]"; \fi# Unset http proxy
RUN if [ -n "$HTTP_PROXY" ]; then \unset http_proxy; \unset https_proxy; \fi# Set up volumes
VOLUME [ "/root/.cache/huggingface", "/root/.cache/modelscope", "/app/data", "/app/output" ]# Expose port 7860 for the LLaMA Board
ENV GRADIO_SERVER_PORT 7860
EXPOSE 7860# Expose port 8000 for the API service
ENV API_PORT 8000
EXPOSE 8000
2. 下载模型
ps:请修改为你要训练的模型
# 进入容器
docker exec -it llamafactory bash
# 下载模型
pip install modelscope
modelscope download --model Qwen/Qwen2.5-14B-Instruct --local_dir /home/aicc1/Qwen2.5-14B-Instruct/
3. 准备训练数据
3.1 下载数据集
使用魔搭上一个医疗的数据,大小:580M,格式:Alpaca。
数据处理或格式要求请查看官方文档:
传送门
ps:如果认为数据集太大(训练时间会加长),可以下载后删除大部分,保留几百条数据去测试
# 在宿主机上 (容器中没有下载wget)
cd /home/aicc1/LLaMA-Factory/data
wget https://modelscope.cn/datasets/swift/Alpaca-CoT/resolve/master/Chinese-medical/chinesemedical.json
3.2 自定义数据集配置
如果使用自定义数据集,需要配置LLaMA-Factory
vim /home/aicc1/LLaMA-Factory/data/dataset_info.json
在其中添加:
"my_dataset": {"file_name": "chinesemedical.json","columns": {"prompt": "instruction","query": "input","response": "output"}
},
4. 训练
4.1 训练配置
mkdir /home/aicc1/LLaMA-Factory/qwen_config
cd /home/aicc1/LLaMA-Factory/qwen_config
tourch qwen2_5_lora_sft_ds.yaml
qwen2_5_lora_sft_ds.yaml
配置:
该配置采用文档中qwen1.5的训练配置。传送门
### model
model_name_or_path: /home/aicc1/Qwen2.5-14B-Instruct### method
stage: sft
do_train: true
finetuning_type: lora
lora_target: q_proj,v_proj### ddp
ddp_timeout: 180000000
deepspeed: examples/deepspeed/ds_z0_config.json### dataset
dataset: identity,my_dataset
template: qwen
cutoff_len: 1024
max_samples: 1000
overwrite_cache: true
preprocessing_num_workers: 16### output
output_dir: saves/Qwen2.5-14B/lora/sft
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true### train
per_device_train_batch_size: 1
gradient_accumulation_steps: 2
learning_rate: 0.0001
num_train_epochs: 10.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
fp16: true### eval
val_size: 0.1
per_device_eval_batch_size: 1
eval_strategy: steps
eval_steps: 500
请注意一些关键参数:
model_name_or_path:下载的模型路径
dataset:数据集
num_train_epochs:训练轮次
本篇用到的数据集为 LLaMA-Factory 自带的 identity 和 自定义的my_dataset,对 identity 数据集进行如下全局替换即可实现定制指令:
{{name}} 替换为 Ascend-helper
{{author}} 替换为 Ascend
执行下方命令替换:
sed -i 's/{{name}}/Ascend-helper/g; s/{{author}}/Ascend/g' /home/aicc1/LLaMA-Factorydata/identity.json
4.2 启动训练
cd /home/aicc1/LLaMA-Factory
ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 torchrun --nproc_per_node 8 \--nnodes 1 \--node_rank 0 \--master_addr 127.0.0.1 \--master_port 7007 \src/train.py qwen_config/qwen2_5_lora_sft_ds.yaml
训练开始:
训练中间:
训练结束:
输出关于训练、评估的指标信息
结果保存在saves文件夹下
Loss下降的感觉还不错:
4.3 训练效果测试
指定原始模型路径、训练后lora路径。
llamafactory-cli chat --model_name_or_path /home/aicc1/Qwen2.5-14B-Instruct \--adapter_name_or_path /home/aicc1/LLaMA-Factory/saves/Qwen2.5-14B/lora/sft \--template qwen \--finetuning_type lora
询问identity数据集内容,返回成功。如图所示:
5. 合并权重
ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 llamafactory-cli export \--model_name_or_path /home/aicc1/Qwen2.5-14B-Instruct \--adapter_name_or_path ./saves/Qwen2.5-14B/lora/sft \--template qwen \--finetuning_type lora \--export_dir ./saves/Qwen2.5-14B/lora/megred-model-path \--export_size 2 \--export_device auto \--export_legacy_format False
相关文章:
【昇腾】【训练】800TA2-910B使用LLaMA-Factory训练Qwen
文章目录 1. 使用docker安装1.1 配置docker1. 2 拉取 LLaMA-Factory1.3 修改配置 2. 下载模型3. 准备训练数据3.1 下载数据集3.2 自定义数据集配置 4. 训练4.1 训练配置4.2 启动训练4.3 训练效果测试 5. 合并权重 更好的阅读体验:传送门 服务器:800TA2 芯…...
Python自动化解决滑块验证码的最佳实践
1. 引言:滑块验证码的挑战与自动化需求 滑块验证码(Slider CAPTCHA)是当前互联网广泛使用的反爬机制之一,它要求用户手动拖动滑块到指定位置以完成验证。这种验证方式可以有效阻止简单的自动化脚本,但对爬虫开发者来说…...
知识蒸馏和迁移学习的区别
知识蒸馏和迁移学习虽然都涉及知识的传递,但并不是同一个概念,它们在目的、方法和应用场景上有显著区别: 1. 定义与核心思想 迁移学习(Transfer Learning) 是一种广义的机器学习范式,核心是将从一个任务或领…...
二项分布详解:从基础到应用
二项分布详解:从基础到应用 目录 引言二项分布的定义概率质量函数及其证明期望与方差推导二项分布的重要性质常见应用场景与其他分布的关系知识梳理练习与思考 引言 概率论中,二项分布是最基础也是最常用的离散概率分布之一。它描述了在固定次数的独…...
迁移学习(基础)
迁移学习理论 目标 迁移学习中的有关概念掌握迁移学习的两种方式 概念 预训练模型微调微调脚本 预训练模型(Pretrained model) 一般情况下预训练模型都是大型模型, 具备复杂的网络结构, 众多的参数量, 以及足够大的数据集进行训练而产生的模型, 在NLP领域, 预训练模型往往…...
云服务器和独立服务器的区别在哪
在当今数字化的时代,服务器成为了支撑各种业务和应用的重要基石。而在服务器的领域中,云服务器和独立服务器是两个备受关注的选项。那么,它们到底有何区别呢? 首先,让我们来聊聊成本。云服务器通常采用按需付费的模式…...
大模型时代的深度学习框架
作者:算力魔方创始人/英特尔创新大使刘力 在CNN时代,AI模型的参数规模都在百万级别,仅需在单张消费类显卡上即可完成训练。例如,以业界知名的CNN模型:ResNet50为例,模型参数量是约为 25.63M,在…...
BIOS主板(非UEFI)安装fedora42的方法
BIOS主板(非UEFI)安装fedora42的方法 现实困难:将Fedora-Workstation-Live-42-1.1.x86_64.iso写入U盘制作成可启动U盘启动fedora42,按照向导将fedora42安装到真机的sda7分区中得到报错如下内容: /boot/efi 必需的 /boot/efi必须位于格式化为e…...
C# 综合示例 库存管理系统7 主界面(FormMain)
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的 图99A-22 主界面窗口设计 主界面是多文档界面容器,需要将窗体属性IsMdiContainer设置为True。关于多文档界面编程请参看教程第7.12节《多文档界面》。 主界面并不提…...
1、RabbitMQ的概述笔记
一、什么是RabbitMQ Rabbit是一个公司名.MQ(nessage queue) 消息队列的意思,RabbitMQ 是 Rabbit企业下的一个消息队列产品。 RabbitMQ 是⼀个实现了 AMQP 的 消息队列 服务,是当前主流的消息中间件之⼀. AMQP:即Advanced MessageQueuingProtocol(高级…...
使用spring boot vue 上传mp4转码为dash并播放
1.前端实现 <template><div class"video-upload"><el-uploadclass"upload-demo"action"/api/upload":before-upload"beforeUpload":on-success"handleSuccess":on-error"handleError":show-file-…...
C++智能指针概念理解的面试题
C智能指针概念理解的面试题 第一部分:基础概念 解释std::unique_ptr和std::shared_ptr在以下方面的区别: 所有权语义性能开销自定义删除器的存储方式是否支持数组类型 答案: 所有权语义: unique_ptr:独占所有权&#…...
52.[前端开发-JS实战框架应用]Day03-AJAX-插件开发-备课项目实战-Lodash
常用JavaScript库 1 认识前端工具库 前端工具类库 2 Lodash vs underscore underscore库 VS Lodash库 Lodash库 的安装 Lodash库字符串、数组 Lodash库对象、集合、函数 3 Day.js vs Mement Moment.js库 VS Day.js库 Day.js库安装 Day.js获取、设置、操作时间 Day.js解析、…...
【论文阅读】平滑量化:对大型语言模型进行准确高效的训练后量化
论文题目:SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models 论文地址:[2211.10438] SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models 代码地址:http…...
mysql游标分页详解:让分页又快又稳的终极方案
一、什么是游标分页? 游标分页是一种更高效的分页方式,它通过"记住当前位置"而不是"数页码"来实现分页。就像看书时夹书签一样,游标分页会记住你看到哪里了,下次直接从那里继续。 传统分页 vs 游标分页 传…...
图论---染色法(判断是否为二分图)
O(nm) 二分图:可以把所有的点划分到两边,使得边只在集合之间,集合内部没有边。 二分图当且仅当图中不含奇数环(边数为奇数条) #include <iostream> #include <vector> #include <cstring> using …...
算法 | 基于SSA-CNN-LSTM(麻雀算法优化卷积长短期记忆神经网络)的股票价格预测(附完整matlab代码,公式,原理,可用于毕业论文设计)
以下是一个基于SSA-CNN-LSTM(麻雀算法优化卷积长短期记忆神经网络)的股票价格预测MATLAB项目实例,包含完整代码和详细注释。代码分为数据预处理、模型构建、优化算法、训练预测四个部分。 🚜🚜🚜🚜🚜🚜🚜🚜🚜🚜🚜🚜🚜 1. 数据预处理 %% 数据加…...
在html中如何创建vue自定义组件(以自定义文件上传组件为例,vue2+elementUI)
1、先上代码:vueUpload.js var dom <div class"upload-file"><el-upload :action"uploadFileUrl" :before-upload"handleBeforeUpload" :file-list"fileList" :limit"limit":on-error"handleUpl…...
Asp.Net Core 基于(asp.net core 2.2) 创建asp .net core空项目
文章目录 ASP.NET Core 应用程序的标准入口点,用于配置和启动一个 Web 主机(WebHost)。`InProcess` 代码分析解决 HTTP Error 500.31 - Failed to load ASP.NET Core runtime 的完整方案**`launchSettings.json` 配置文件分析**ASP.NET Core 中的配置源详解ASP.NET Core 应用…...
AiFlutter 低代码平台介绍
产品概述 AiFlutter 低代码平台是一款基于拖拽组件和配置流程图的可视化开发工具,旨在简化移动应用开发过程。无需编写代码,用户即可通过拖拽组件快速搭建应用界面,并通过配置流程图设计页面逻辑。平台支持硬件通信功能,用户可直…...
Flutter Dart 集合类型List Set Map详解军 以及循环语句 forEaclh map where any every
List基础用法 var list1 ["西瓜", "苹果", "香蕉", true, 0];var list2 <String>["西瓜", "苹果", "香蕉"];List list3 ["西瓜", "苹果", "香蕉"];list3.add("草莓&…...
aws(学习笔记第三十九课) iot-msk-pipeline
文章目录 aws(学习笔记第三十九课) iot-msk-pipeline学习内容:1. 整体架构1.1 代码链接1.2 代码调整1.2 整体架构(概要)1.3 整体架构(详细) 2. 代码解析2.1 创建IotProducerDestination2.2 创建IotProducer2.3 创建MSK client的EC22.4 创建MSK cluster2.5 创建Main …...
2025上海车展:赛轮思AI携手行业领军企业展示xUI——混合式、智能体化的AI助理平台
用户将可首次全面体验集成多模态SLM (端侧大语言模型)的Cerence xUl,此次演示由长城汽车和TCL合作呈现 马萨诸塞州伯灵顿,2025年4月22日——Cerence Inc.(NASDAQ: CRNC)(“赛轮思AI”),全球对话…...
聚合分销小程序系统开发方案:整合AI对话、网盘、淘客CPS/CPA、电影票团购与会员卡业务
一、系统架构设计 技术架构 分层设计:采用微服务架构,分为平台层(分销管理、数据库、交易系统)、管理体系层(数据管理、权限控制)和功能层(AI对话、网盘、CPS/CPA拉新、电影票团购、会员卡&…...
设计模式-- 原型模式详解
原型模式(prototype) 原型模式:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象,原型模式属于创造性模式,它同样提供了创建对象的最佳方式之一。(效率很高…...
ARM服务器与X86服务器核心区别分析
ARM服务器与X86服务器核心区别分析 一、架构设计与指令集差异 指令集本质 ARM:基于RISC(精简指令集),指令定长且简单,单周期执行效率高,硬件设计复杂度低,适合低功耗场景。 X86…...
嵌入式:ARM系列分类及主要应用场景
在嵌入式系统和移动计算领域,Arm Cortex 系列处理器凭借其多样化的架构和卓越的性能,成为了众多设备的核心 “大脑”。从高端智能手机到工业控制设备,从物联网终端到安全芯片,Cortex 系列处理器以不同的型号和特性,满足…...
Axure PR 9 中继器 标签
大家好,我是大明同学。 这期内容,我们来了解一下Axure中继器数据表标签交互设计。 预览地址:https://n05kfs.axshare.com 好的,这里就结束了。 我是大明同学。 下期见。...
Django【应用 01】django-plotly-dash安装及使用
django-plotly-dash 的使用文档:https://django-plotly-dash.readthedocs.io/en/stable/introduction.html 以下内容大部分保留原文档的内容,添加实际的步骤和必要的说明。 django-plotly-dash安装及使用 1.安装配置1.1 安装1.2 注册组件1.3 配置框架1.…...
【MFC】 VS2022打开低版本的MFC,双击.rc文件,DIalog加载失败,页面弹窗fatal error RC***:cannot open*****
打开以前的MFC示例报错,打开VS2019的实例以及更早VS版本的实例都一样,打不开,还报错; 错误 MSB8041 此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体系结构安装它们。 GxCameraEvents_VS2015 C:\P…...
ClickHouse 中`MergeTree` 和 `ReplicatedMergeTree`表引擎区别
在 ClickHouse 中,MergeTree 和 ReplicatedMergeTree 都是用于存储和管理数据的表引擎,但它们的主要区别在于是否支持数据复制。下面详细解释两者的不同点及其适用场景。 MergeTree 定义: MergeTree 是 ClickHouse 中最基本的表引擎之一&a…...
PubMed PDF下载 cloudpmc-viewer-pow逆向
目标:https://pmc.ncbi.nlm.nih.gov/articles/ pdf的下载链接是直接存在的 但是第一次单击下载不会触发PDF下载,而是跳转到验证页面然后又跳回概览页面 再次点击下载按钮,PDF就能正常下载了。现在要分析下载PDF要验证什么,如cooki…...
C语言面试高频题——strcat、strncat、strcmp、strcpy 哪些函数会导致内存溢出?
1. 函数功能与内存溢出风险 (1) strcat 功能:将源字符串追加到目标字符串的末尾。 原型: char *strcat(char *dest, const char *src);内存溢出风险: strcat 不会检查目标缓冲区的大小,直接将源字符串追加到目标字符串后。如果目…...
Linux套接字+Sqlite实例:客户端-服务器应用程序教程
本文将详细介绍如何创建一个基于客户端-服务器架构的应用程序,实现用户注册、登录、单词查询以及历史记录查询。该应用通过TCP套接字进行客户端和服务器之间的通信,并通过SQLite数据库进行用户和查询记录的管理。教程会逐步解析客户端和服务器端的实现&a…...
用 Python 打造打篮球字符动画!控制台彩色炫酷输出,抖音搞怪视频灵感还原
一、引言:从抖音搞怪视频到 Python 字符动画的奇妙之旅 刷抖音时刷到一个神级操作 —— 博主用 01 数字矩阵还原了明星打篮球的经典画面,字符在控制台随动作节奏炫彩跳动,瞬间点燃了技术宅的 DNA!作为 Python 图像处理爱好者&…...
入侵检测系统(IDS)与入侵防御系统(IPS):功能对比与部署实践
入侵检测系统(IDS)与入侵防御系统(IPS):功能对比与部署实践 在网络安全防御体系中,入侵检测系统(Intrusion Detection System, IDS)与入侵防御系统(Intrusion Preventio…...
力扣-hot100(找到字符串中的所有字母异位词)
438. 找到字符串中所有字母异位词 中等 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 示例 1: 输入: s "cbaebabacd", p "abc" 输出: [0,6] 解释: 起始索引等于 0…...
零信任架构:重塑网络安全的IT新范式
在信息技术(IT)的风云变幻中,网络安全领域正迎来一场深刻变革——零信任架构(Zero Trust Architecture)。2025年,随着远程办公的常态化、云服务的普及以及网络攻击的日益复杂化,传统的“城堡与护…...
大模型微调 - transformer架构
什么是Transformer Transformer 架构是由 Vaswani 等人在 2017 年提出的一种深度学习模型架构,首次发表于论文《Attention is All You Need》中 Transformer 的结构 Transformer 编码器(Encoder) 解码器(Decoder) …...
Python图形界面编程(二)
目录 六、控件属性和事件响应 1、基本的操控 2、示例 七、对话框 六、控件属性和事件响应 1、基本的操控 有的控件有对对应的函数,可以用来设置以及获取属性或者设置属性,或者以字典下标的形式来获取,设置对应的属性: 比如&…...
MongoDB 图片 URL 存储异常问题解决方案
项目场景: 在开发一个在线考试系统时,前端需要提交学生的答题截图到后端,后端使用 MinIO 存储图片并保存图片 URL 到 MongoDB 数据库。系统需要支持多次提交图片,并将所有图片 URL 以数组形式存储在 MongoDB 的 screenShot 字段中…...
run code执行ts配置
1、全局安装typescript npm install –g typescript 执行tsc –v,可输出版本号,代表安装成功 2、创建tsConfig文件 npx tsc –init 创建成功目录下会出现tsconfig.json文件 3、安装ts-node,支持执行运行ts文件 npm install –g ts-node 控制…...
Python 虚拟环境管理:venv 与 conda 的选择与配置
文章目录 前言一、虚拟环境的核心价值1.1 依赖冲突的典型场景1.2 隔离机制实现原理 二、venv 与 conda 的架构对比2.1 工具定位差异2.2 性能基准测试(以创建环境 安装 numpy 为例) 三、venv 的配置与最佳实践3.1 基础工作流3.2 多版本 Python 管理 四、…...
【前缀和计算和+哈希表查找次数】Leetcode 560. 和为 K 的子数组
题目要求 给定一个整数数组 nums 和一个整数 k,统计并返回该数组中和为 k 的子数组的个数。 子数组是数组中元素的连续非空序列。 示例 1 输入:nums [1, 1, 1], k 2 输出:2 示例 2 输入:nums [1, 2, 3], k 3 输出…...
[原创](现代Delphi 12指南):[macOS 64bit App开发]:如何使用CFStringRef类型字符串?
[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、…...
89.WPF 中实现便捷的数字输入框:DecimalUpDown 控件的使用 WPF例子 C#例子.
在 WPF 开发中,经常会遇到需要用户输入数字的场景。为了提供更好的用户体验,我们可以使用一个功能强大的控件——DecimalUpDown,它来自第三方库 Extended WPF Toolkit。这个控件不仅支持用户通过键盘输入数字,还支持通过鼠标滚轮或…...
【时时三省】(C语言基础)循环程序举例
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 例题: 用公式4/π≈1-3/1+5/1-7/1+...求π的近似值,直到发现某一项的绝对值小于10的-6次方为止(该项不累加)。 解题思路: 这是求值的近似方法中的一种。求π值可以用不同的近似方法。如下面的表达式都可以…...
Linux常用中间件命令大全
1.nginx 执行命令之前需要先进入sbin目录查看nginx版本: ./nginx -v检查配置文件正确性: ./nginx -t启动nginx服务: ./nginx停止nginx服务: ./nginx -s stop启动完成后可以查看nginx进程: ps -ef|grep nginx可以通过绝…...
数图信息科技邀您共赴第二十五届中国零售业博览会
数图信息科技邀您共赴第二十五届中国零售业博览会 2025年5月8日至10日,数图信息科技将精彩亮相第二十五届中国零售业博览会(CHINASHOP 2025),与行业伙伴共探零售数字化转型新机遇! 数图展会新品抢先看 数图商品一…...
路由器的基础配置全解析:静态动态路由 + 华为 ENSP 命令大全
🚀 路由器的基础配置全解析:静态&动态路由 华为 ENSP 命令大全 🌐 路由器的基本概念📍 静态路由配置📡 动态路由协议:RIP、OSPF、BGP🖥 华为 ENSP 路由器命令大全🔹 路由器基本…...