【Bug】记录2025年遇到的Bug以及修复方案
--------------------------------------------------------分割线 2025.3.25-------------------------------------------------------windows环境下通过命令行终端(必须是命令行下,直接赋值传递,代码正常)的形式传递字符串时,被转义,linux系统下就不存在这种情况
例如在windows系统环境下,执行下面的命令:
python test.py --model_params "{"n_estimators":200,"max_depth":12,"criterion":"mse","n_jobs":None,"random_state":10,"warm_start":False}"

变量的引号、值的引号都不见了,消失了!这导致算法参数赋值出现报错。找了很长时间这个问题到底是什么情况,如何避免,发生linux系统终端执行就不存在这个情况,得出的结论是和系统有关。(windows下使用不同的python版本也同样报错)
解决办法:
编写一个函数,对从终端获取的参数进行重写,变成符合要求的形式。当然这也结合了大模型给出的代码。
函数代码如下:
def convert_value(a):if a == 'True':return Trueelif a == 'False':return Falseelif a == 'None':return None# 尝试转换为整数try:int_val = int(a)if str(int_val) == a:return int_valexcept ValueError:pass# 尝试转换为浮点数try:float_val = float(a)if str(float_val) == a:return float_valexcept ValueError:pass# 其他情况返回原字符串return adef convert_dict(s):# s = {A:a, B: b}, 转成字典# print("第一个s:", s)s = s.strip('{}')# print("strip后的s:", s)# 分割键值对pairs = [pair.strip() for pair in s.split(',')]print("pairs:", pairs)# 转换为字典result = {}for pair in pairs:key, value = pair.split(':')print(key, value)result[key.strip()] = convert_value(value.strip())return result
然后再在终端执行命令,一切正常:

完整代码如下:
# -*- coding: utf-8 -*-
"""
Created on Wed Mar 26 19:48:50 2025@author: AIexplore
"""import argparse
import json
from sklearn.ensemble import RandomForestRegressordef convert_value(a):if a == 'True':return Trueelif a == 'False':return Falseelif a == 'None':return None# 尝试转换为整数try:int_val = int(a)if str(int_val) == a:return int_valexcept ValueError:pass# 尝试转换为浮点数try:float_val = float(a)if str(float_val) == a:return float_valexcept ValueError:pass# 其他情况返回原字符串return adef convert_dict(s):# s = {A:a, B: b}, 转成字典# print("第一个s:", s)s = s.strip('{}')# print("strip后的s:", s)# 分割键值对pairs = [pair.strip() for pair in s.split(',')]print("pairs:", pairs)# 转换为字典result = {}for pair in pairs:key, value = pair.split(':')print(key, value)result[key.strip()] = convert_value(value.strip())return resultdef model_train(params):print("最终参数:", params)model = RandomForestRegressor(**params)print("model:", model)if __name__ == "__main__":arg_parser = argparse.ArgumentParser("launcher")arg_parser.add_argument('--model_params', type=str, help="模型的输入参数", default='{}')args = arg_parser.parse_args()# 获取参数params = args.model_paramsprint("命令行获取参数:", params)# windows环境下转换params = convert_dict(params)print("转换获取参数:", params)# json# params = json.loads(params)# print("命令行获取参数:", params)model_train(params)# 必须使用双引号, 单引号报错# python test.py --model_params "{"n_estimators":200,"max_depth":12,"criterion":"mse","n_jobs":None,"random_state":10,"warm_start":False}"
相关文章:
【Bug】记录2025年遇到的Bug以及修复方案
--------------------------------------------------------分割线 2025.3.25-------------------------------------------------------windows环境下通过命令行终端(必须是命令行下,直接赋值传递,代码正常)的形式传递字符串时&a…...
2025最新“科研创新与智能化转型“暨AI智能体开发与大语言模型的本地化部署、优化技术实践
第一章、智能体(Agent)入门 1、智能体(Agent)概述(什么是智能体?智能体的类型和应用场景、典型的智能体应用,如:Google Data Science Agent等) 2、智能体(Agent)与大语…...
VUE3+TypeScript项目,使用html2Canvas+jspdf生成PDF并实现--分页--页眉--页尾
使用html2CanvasJsPDF生成pdf,并实现分页添加页眉页尾 1.封装方法htmlToPdfPage.ts /**path: src/utils/htmlToPdfPage.tsname: 导出页面为PDF格式 并添加页眉页尾 **/ /*** 封装思路* 1.将页面根据A4大小分隔边距,避免内容被中间截断* 所有元素层级不要…...
【NLP 46、大模型技术发展】
目录 一、ELMo 2018 训练目标 二、GPT-1 2018 训练目标 三、BERT 2018 训练目标 四、Ernie —— baidu 2019 五、Ernie —— Tsinghua 2019 六、GPT-2 2019 七、UNILM 2019 八、Transformer - XL & XLNet 2019 1.模型结构 Ⅰ、循环机制 Recurrence Mechanism Ⅱ、相对位置…...
在 Ubuntu 上安装 Docker 的完整指南
1. 卸载旧版本(如有) 在安装新版本前,建议先卸载旧版本: sudo apt remove docker docker-engine docker.io containerd runc 2. 安装依赖包 更新软件包索引并安装必要的依赖: sudo apt update sudo apt install -y ca-certificates curl gnupg lsb-release 3. 添加 Do…...
可以把后端的api理解为一个目录地址,但并不准确
将后端的 API 理解为一个“目录地址”是可以的,但并不完全准确。让我们更详细地解释一下。 目录 1、生动形象了解api 2、后端 API 的作用 3、可以将 API 理解为“目录地址”的原因 (1)URL 路径 (2)层次结构 4、…...
硬件基础--16_公式梳理
公式梳理 欧姆定律: IU/R 1.欧姆定律有局限性,仅适用于纯电阻电路(或者说纯电阻元器件,纯电阻设备) 2.纯电阻电路:消耗的电能仅转化为热能,没有其他形式的能量转换。 功率计算:PUI 1.导出公式:PU2 /R 2.导出公式:PI2 R 焦耳定律:QI2 Rt 1.导…...
《Python实战进阶》No34:卷积神经网络(CNN)图像分类实战
第34集:卷积神经网络(CNN)图像分类实战 2025年3月28日更新 增加了 CNN和AI大模型关系的说明。 2025年3月29日更新了代码,优化损失系数曲线可视化。 详细环境配置依赖和可一次性复制的完整代码见文末。 摘要 最近大模型推陈出新迭…...
嵌入式Linux网络编程:UNIX Domain Socket进程间通信(IPC)
嵌入式Linux网络编程:UNIX Domain Socket进程间通信(IPC) 【本文代码已在Linux平台验证通过】 一、UNIX Domain Socket核心优势 1.1 本地IPC方案对比 特性UNIX Domain Socket管道(Pipe)消息队列(Message Queue)共享内存(Shared Memory)跨进…...
【qt】 布局器
参考博客:https://blog.csdn.net/Fdog_/article/details/107522283 目录 布局管理器概念常见的布局管理器及特点🔵QHBoxLayout水平布局🔵QVBoxLayout垂直布局 🔵QGridLayout网格布局 🔵QFormLayout表单布局 QT 高级布…...
Hosts文件与DNS的关系:原理、应用场景与安全风险
目录 引言 Hosts文件与DNS的基本概念 2.1 什么是Hosts文件? 2.2 什么是DNS? Hosts文件与DNS的关系 Hosts文件的应用场景 4.1 本地开发与测试 4.2 屏蔽广告与恶意网站 4.3 绕过DNS污染或劫持 Hosts文件的优势 5.1 解析速度快 5.2 不受DNS缓存影…...
VMware Windows Tools 存在认证绕过漏洞(CVE-2025-22230)
漏洞概述 博通公司(Broadcom)近日修复了 VMware Windows Tools 中存在的一个高危认证绕过漏洞,该漏洞编号为 CVE-2025-22230(CVSS 评分为 9.8)。VMware Windows Tools 是一套实用程序套件,可提升运行在 VM…...
pnpm 依赖升级终极指南:从语义化版本控制到 Monorepo 全局更新的企业级实践
要使用 pnpm 更新所有依赖包,可以通过以下命令实现: 1. 更新所有依赖到符合语义化版本的范围 pnpm update该命令会根据 package.json 中定义的版本范围(如 ^1.0.0 或 ~2.3.4)更新依赖包到最新兼容版本,但不会突破版本…...
Sentinel[超详细讲解]-2
异常处理 默认情况下,Sentinel 会抛出 BlockException 异常,如果希望自定义异常,则可以使用 SentinelResource 注解的 blockHandler 属性。 1、自定义异常处理 BlockExceptionHandler 自定义异常处理类实现 BlockExceptionHandler 接口&#…...
【问题解决】Linux安装conda修改~/.bashrc配置文件后,root 用户下显示 -bash-4.2#
问题描述 在Linux安装conda下的python环境时候,修改了~/.bashrc文件,修改完成后,再次进入服务器后,登录时候显示的不是正常的[rootlocalhost ~]#,而是-bash-4.2# 原因分析: 网上原因有:/root下…...
优化webpack打包体积思路
Webpack 打包过大的问题通常会导致页面加载变慢,影响用户体验。可以从代码优化、依赖优化、构建优化等多个角度入手来减少打包体积: 代码优化 (1)按需加载(代码拆分) ① 路由懒加载 如果你的项目使用 Vu…...
RabbitMQ 技术详解:异步消息通信的核心原理与实践
这里写目录标题 RabbitMQ 技术详解:异步消息通信的核心原理与实践一、RabbitMQ 本质剖析核心架构组件 二、核心功能与应用场景主要作用典型应用场景 三、工作流程深度解析消息传递流程关键协议机制 四、Java 实现示例1. 依赖配置(Maven)2. 消…...
CF每日5题Day4(1400)
好困,感觉很累,今天想赶紧写完题早睡。睡眠不足感觉做题都慢了。 1- 1761C 构造 void solve(){int n;cin>>n;vector<vector<int>>a(n1);forr(i,1,n){//保证每个集合不同a[i].push_back(i);}forr(i,1,n){string s;cin>>s;forr(…...
LLM架构解析:NLP基础(第一部分)—— 模型、核心技术与发展历程全解析
本专栏深入探究从循环神经网络(RNN)到Transformer等自然语言处理(NLP)模型的架构,以及基于这些模型构建的应用程序。 本系列文章内容: NLP自然语言处理基础(本文)词嵌入࿰…...
k近邻算法K-Nearest Neighbors(KNN)
算法核心 KNN算法的核心思想是“近朱者赤,近墨者黑”。对于一个待分类或预测的样本点,它会查找训练集中与其距离最近的K个样本点(即“最近邻”)。然后根据这K个最近邻的标签信息来对当前样本进行分类或回归。 在分类任务中&#…...
Dubbo(21)如何配置Dubbo的注册中心?
在分布式系统中,注册中心是一个关键组件,用于服务的注册和发现。Dubbo 支持多种注册中心,包括 ZooKeeper、Nacos、Consul、Etcd 等。下面详细介绍如何配置 Dubbo 的注册中心,以 ZooKeeper 为例。 配置步骤 引入依赖:…...
【Android15 ShellTransitions】(九)结束动画+Android原生ANR问题分析
finishTransition这部分的内容不多,并且我个人的实际工作中很少接触这块,因此我之前都觉得没有必要专门开一篇去分析最后留下的这一丁点儿的动画流程。但是最近碰到了一个google原生ANR问题,正好是和这块相关的,也让我意识到了fin…...
如何让DeepSeek-R1在内网稳定运行并实现随时随地远程在线调用
前言:最近,国产AI圈里的新星——Deepseek,简直是火到不行。但是,你是不是已经对那些千篇一律的手机APP和网页版体验感到腻味了?别急,今天就带你解锁一个超炫的操作:在你的Windows电脑上本地部署…...
STM32通用定时器结构框图
STM32单片机快速入门 通用定时器框图 TIM9和TIM12 通用定时器框图 TIM9和TIM12 (二) 通用定时器框图...
How to install vmware workstation pro on Linux mint 22
概述 VMware 是一家专注于虚拟化技术和云计算解决方案的全球领先软件公司,成立于1998年,总部位于美国加州。它的核心技术是通过“虚拟化”将一台物理计算机的硬件资源(如CPU、内存、存储等)分割成多个独立的虚拟环境(…...
深度学习 Deep Learning 第11章 实用方法论
深度学习 Deep Learning 第11章 实用方法论 章节概述 本章深入探讨了机器学习在实际应用中的方法论,强调了从确定目标到逐步优化的系统性过程。在机器学习项目中,明确的目标和性能指标是指导整个开发过程的关键。通过建立初始的端到端系统,…...
【常用的中间件】
中间件(Middleware)是位于客户端和服务器之间的软件层,用于处理客户端请求和服务器响应之间的各种任务。中间件可以提供多种功能,如负载均衡、消息队列、缓存、身份验证等。以下是常用的中间件及其作用: 1. 消息队列中…...
如何排查C++程序的CPU占用过高的问题
文章目录 可能的原因程序设计的BUG系统资源问题恶意软件硬件问题 通常步骤一个简单的问题代码在windows平台上如何排查Windows Process ExplorerWinDBG 在Linux平台如何排查使用TOP GDBPerf 可能的原因 程序设计的BUG 有死循环低效算法与数据结构滥用自旋锁频繁的系统调用&a…...
个人学习编程(3-29) leetcode刷题
最后一个单词的长度: 思路:跳过末尾的空格,可以从后向前遍历 然后再利用 while(i>0 && s[i] ! ) 可以得到字符串的长度, int lengthOfLastWord(char* s) {int length 0;int i strlen(s) - 1; //从字符串末尾开始//…...
Linux云计算SRE-第二十一周
构建单节点prometheus,部署node exporter和mongo exporter。构建kibana大盘。包含主机PU使用率,主机MEM使用率,主机网络包速度。mongo db大盘,包含节点在线状态,读操作延迟等 一、实验环境准备 - 节点信息࿱…...
