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

LLM - argparse 解析脚本参数

目录

一.引言

二.argparse 解析 shell 参数

1.使用步骤

2.python 侧示例

3.shell 侧示例


一.引言

CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \--stage pt \--model_name_or_path path_to_your_model \--do_train \--dataset wiki_demo \--template default \--finetuning_type lora \--output_dir path_to_pt_checkpoint \--overwrite_cache \--per_device_train_batch_size 4 \--gradient_accumulation_steps 4 \--lr_scheduler_type cosine \--logging_steps 10 \--save_steps 1000 \--learning_rate 5e-5 \--num_train_epochs 3.0 \--plot_loss \--fp16

最近微调大模型时经常需要用 shell 脚本传很多参数,发现大家都在使用 argparse 类,下面整理一下 argparse 的基础用法。

二.argparse 解析 shell 参数

1.使用步骤

- 导入 argparse 模块

import argparse

- 创建 AgrumentParse 对象

parser = argparse.ArgumentParser()

- 添加待解析参数 [以解析 --input 参数为例]

parser.add_argument('--input', help='输入文件', default='input.txt')

 - 解析命令行参数

args = parser.parse_args()

- 使用解析后的参数

input_file = args.input

2.python 侧示例

import argparsedef main():parser = argparse.ArgumentParser()parser.add_argument('--input', help='输入文件')parser.add_argument('--output', help='输出文件')args = parser.parse_args()input_file = args.inputoutput_file = args.output# 在这里使用解析后的参数进行进一步的处理print(f'输入文件:{input_file}')print(f'输出文件:{output_file}')if __name__ == '__main__':main()

注意需要调用 parse_args() 才能获取相关的解析参数。

3.shell 侧示例

python script.py --input input.txt --output output.txt

当参数多了可以隔行传参,比较清晰: 

python script.py \--input input.txt \--output output.txt

执行上述脚本后得到:

输入文件:input.txt
输出文件:output.txt
http://www.lryc.cn/news/119397.html

相关文章:

  • 谈一谈在两个商业项目中使用MVI架构后的感悟
  • ApacheCon - 云原生大数据上的 Apache 项目实践
  • Git 代码分支规范
  • ATFX汇评:美7月通胀率数据基本符合预期,美指仍无法站稳103关口
  • 系统架构设计专业技能 · 软件工程(一)【系统架构设计师】
  • C语言 指针的运算
  • 【JAVA基础】- 同步非阻塞模式NIO详解
  • dingding机器人
  • 6.6 实现卷积神经网络LeNet训练并预测手写体数字
  • Django路由Router
  • 蜜蜂路线 P2437
  • 无脑——010 复现yolov8 使用yolov8和rt detr 对比,并训练自己的数据集
  • 如何给Google Chrome增加proxy
  • 设计模式——原型模式
  • Spring框架中的Bean生命周期
  • async和await修饰符
  • vivado tcl创建工程和Git管理
  • 田间农业数字管理系统-高标准农田建设
  • 【网络安全】等保测评系列预热
  • 解决: git拉取报错 git 未能顺利结束 (退出码 1)
  • 【深度学习中的批量归一化BN和层归一化LN】BN层(Batch Normalization)和LN层(Layer Normalization)的区别
  • 开发一个RISC-V上的操作系统(六)—— 中断(interrupt)和异常(exception)
  • 心跳跟随的心形灯(STM32(HAL)+WS2812+MAX30102)
  • 5. 服务发现
  • 算法备案背后的原因:确保技术透明度与公正
  • Linux centos 常用命令 【持续更新】
  • 《使用 VMware 在 Windows 上搭建 Linux 系统的完整指南》
  • 大数据Flink(六十):Flink 数据流和分层 API介绍
  • 软件测试面试题——如何测试App性能?
  • 玩转C链表