我在 Microsoft.ML 中尝试使用 FastTreeRegressor 构建一个机器学习模型,主要是将 Taxi Fare Prediction 教程中的代码复制到我现有的环境中,这样我可以替换数据和一些参数。一切都成功构建了,但运行时出现了以下错误:
System.InvalidOperationException: ‘未找到入口点 ‘Trainers.FastTreeRegressor”
我该如何解决这个问题?
附注: 我没有包含代码示例,因为教程中已经包括了它们,并且提前知道答案(见下文),它们不会增加问题的可解性。
回答:
查看错误信息,它看起来很像一个格式不正确的 EXE 文件。这让我注意到我没有在我的 EXE 项目中添加对 Microsoft.ML 的引用,只是在一个类库中添加了引用。
在我的控制台项目中添加 Nuget 包后,引发了一个编译时错误,我必须为 x64 构建(与 Any CPU 相比),但这两步都解决了问题。
值得注意的是:当配置为 x64 且未添加 Nuget 包时,也会发生错误;这两个步骤都需要执行。
查看 Nuget 的日志,我也看到:
生成 MSBuild 文件 [项目文件].csproj.nuget.g.props。
生成 MSBuild 文件 [项目文件].csproj.nuget.g.targets。
将锁定文件写入磁盘。路径:[项目目录]\obj\project.assets.json
这些确实确认了该包比一些包更深入地植根于系统中,解释了该要求。这并不 surprising。