通过批处理文件调用Weka预训练模型预测时报错求助
解决Weka命令行调用已保存模型预测的错误问题
首先,我注意到你执行批处理时出现了命令截断的提示(LinearRegressio...),结合你的脚本内容,咱们一步步排查和修复问题:
1. 修复带空格的路径解析问题
你的root路径包含空格(C:\Program Files\Weka-3-8\),直接使用%root%不加引号会导致命令解析出错。先修改目录切换命令:
cd /D "%root%"
给%root%加上双引号,确保带空格的路径能被系统正确识别。
2. 确保类名完整且无拼写错误
错误里的LinearRegressio...说明命令可能被截断,先确认weka.classifiers.functions.LinearRegression这个类名完全正确——注意不要漏掉最后的n,拼写错误会直接导致找不到类。
3. 给文件路径添加引号(防患未然)
虽然你当前的测试集和模型路径没有空格,但如果后续路径有变动,建议给所有文件路径加上双引号,避免解析异常:
java -classpath weka.jar weka.classifiers.functions.LinearRegression -T "Z:\ARFF_FILES\TestSet_regression.arff" -l "Z:\WEKA_MODELS\Regression_model_03_05_2018.model" -p 0
4. 验证命令的正确性
你可以先在Weka安装目录下打开命令提示符,手动输入完整命令测试,排除批处理脚本的干扰:
java -classpath weka.jar weka.classifiers.functions.LinearRegression -T "Z:\ARFF_FILES\TestSet_regression.arff" -l "Z:\WEKA_MODELS\Regression_model_03_05_2018.model" -p 0
如果手动执行没问题,再把命令放回批处理即可。
5. 检查版本兼容性
确保你保存模型时使用的Weka版本和现在调用的版本一致(都是3.8),不同版本的模型文件可能存在兼容性问题,导致加载失败。
修改后的完整批处理脚本:
@ECHO ON title Weka caller set root=C:\Program Files\Weka-3-8\ cd /D "%root%" java -classpath weka.jar weka.classifiers.functions.LinearRegression -T "Z:\ARFF_FILES\TestSet_regression.arff" -l "Z:\WEKA_MODELS\Regression_model_03_05_2018.model" -p 0 pause
加上pause可以让你看到执行后的完整输出,方便排查后续问题。
内容的提问来源于stack exchange,提问作者Amaury Brun-Vitelli
相关产品推荐
相关产品推荐

