Python机器学习项目报错:已声明参数仍提示需传入(TSL教学)
问题分析与解决
你的错误根源是argparse参数定义完全错误,把参数值(文件路径)当成了参数名来定义,同时存在非法的参数命名。
错误点拆解
- 长参数(
--xxx)不能用完整文件路径作为名称,argparse的长参数应该是简洁的标识符(比如--dataset),文件路径是运行脚本时需要传入的参数值,不是参数名本身。 --10是非法参数名,argparse的长参数不能以数字开头,必须以字母开头。
修正后的代码
# construct the argument parser and parse the arguments ap = argparse.ArgumentParser() ap.add_argument("-d", "--dataset", required=True, help="path to input dataset") ap.add_argument("-m", "--model", required=True, help="path to output serialized model") ap.add_argument("-l", "--label-bin", required=True, help="path to output label binarizer") ap.add_argument("-e", "--epochs", type=int, default=10, help="# of epochs to train our network for") ap.add_argument("-p", "--plot", type=str, default="plot.png", help="path to output loss/accuracy plot") args = ap.parse_args()
正确运行命令示例
在终端中运行脚本时,需要传入对应参数的路径值,比如:
python train.py -d "C:\Users\MELISA\Desktop\isitme_engelliler_proje\machine_learning\dataset" -m "C:\Users\MELISA\Desktop\isitme_engelliler_proje\machine_learning\model" -l "C:\Users\MELISA\Desktop\isitme_engelliler_proje\machine_learning\label-bin"
如果需要指定训练轮数或自定义输出图路径,可追加参数:
python train.py -d "你的数据集路径" -m "你的模型输出路径" -l "你的标签二值化器路径" -e 20 -p "C:\xxx\custom_plot.png"
内容的提问来源于stack exchange,提问作者Melisa Yıldırım
相关产品推荐
相关产品推荐

