gpt4 book ai didi

visual-studio - Azure(C#)System.IO.FileNotFoundException : Could not find file

转载 作者:行者123 更新时间:2023-12-03 08:39:41 32 4
gpt4 key购买 nike

我使用 Visual Studio 创建了一个 ML 模型。我也使用 Visual Studio 将 Web 应用程序上传到 Azure。但是,当我填写 ML 模型的字段并单击网站上的“运行”时,我收到此错误,该错误是我直接从 Azure 应用服务编辑器复制的。

我仅在尝试在 Azure 网站上运行 ML 模型时收到此错误,如果我在计算机上运行 Web 应用程序,则根本不会出现任何错误。

谢谢:)

The error:

2020-07-18 01:12:59.138 +00:00 [Error] Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware: An unhandled exception has occurred while executing the request.
System.IO.FileNotFoundException: Could not find file 'C:\Users\X\X\X\fileML.Model\MLModel.zip'.
File name: 'C:\Users\X\X\X\fileML.Model\MLModel.zip'

____________________
My code:

// This file was auto-generated by ML.NET Model Builder.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Microsoft.ML;
using fileML.Model;

namespace fileML.Model
{
public class ConsumeModel
{
private static readonly Lazy<PredictionEngine<ModelInput, ModelOutput>> PredictionEngine = new Lazy<PredictionEngine<ModelInput, ModelOutput>>(CreatePredictionEngine);

// For more info on consuming ML.NET models, visit https://aka.ms/mlnet-consume
// Method for consuming model in your app
public static ModelOutput Predict(ModelInput input)
{
ModelOutput result = PredictionEngine.Value.Predict(input);
return result;
}

public static PredictionEngine<ModelInput, ModelOutput> CreatePredictionEngine()
{
// Create new MLContext
MLContext mlContext = new MLContext();

// Load model & create prediction engine
string modelPath = @"C:\Users\X\X\X\fileML.Model\MLModel.zip";

ITransformer mlModel = mlContext.Model.Load(modelPath, out _);
var predEngine = mlContext.Model.CreatePredictionEngine<ModelInput, ModelOutput>(mlModel);

return predEngine;
}
}
}

最佳答案

Nathan,欢迎来到 stackoverflow。

这是您缺少的东西:
您正在尝试从计算机访问本地路径,但在 Azure 上没有本地计算机,因此每当您的代码尝试访问硬编码的同一路径时,都会导致错误。

我的建议是将 zip 文件添加到项目中,添加后右键单击该文件并标记“复制到输出目录 - 始终复制”。

请参阅下文

enter image description here

这将有助于从输出目录获取本地文件路径。现在是时候更改代码以动态获取文件了。

您可以使用

string directoryPath = Directory.GetCurrentDirectory();
string modelPath= Path.Combine(directoryPath ,"MLModel.zip");

这将为您提供文件路径。只需在本地测试您的代码并部署应用程序即可。

好处是现在您的模型文件将与您的代码一起部署。每次更改模型时,只需替换文件并再次部署代码即可。

使其更加动态的提示:-您还可以使用 Azure Blob 存储来保存您的 zip 文件,通过使用此功能,您无需一次又一次地部署代码。只需要替换 side blob 中的文件即可。

关于visual-studio - Azure(C#)System.IO.FileNotFoundException : Could not find file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62963737/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com