В ML.Net нет zip-файла для AddPredictionEnginePoolC#

Место общения программистов C#
Ответить
Anonymous
 В ML.Net нет zip-файла для AddPredictionEnginePool

Сообщение Anonymous »

Новичок в ML.Net. Я создал модель непосредственно в своем API и хочу создать пул с помощью AddPredictionEnginePool, чтобы я мог выполнять многопоточные прогнозы. Однако во всей документации говорится, что есть файл .zip, на который мне следует сослаться, но я его не вижу. Следует ли вместо этого использовать файл .mlnet или есть способ напрямую ссылаться на объект? Или есть шаг, на котором мне нужно запросить zip-файл при создании модели?
Вот пример того, что предлагается, обратите внимание, что .FromFile — это то, чем я являюсь. пытаюсь заполнить:

Код: Выделить всё

builder.Services.AddPredictionEnginePool().FromFile(modelName: "MyModel", filePath: "where_is_this_zip_file.zip", watchForChanges: true);
ОБНОВЛЕНИЕ
Итак, мы добились немного большего прогресса. В поисках Zip-файла я переименовываю файл MyModel.mlnet в MyModel.Zip. Похоже, это именно тот zip-файл, который я искал (???):
[img]https://i.sstatic. net/53IzengH.png[/img]

И содержимое. Это выглядит правильно?
Изображение
Далее в файле program.cs я проверил правильный путь, загрузив файл .zip и просмотрев его в отладчике. Это было там. А затем я использовал AddPredictionEnginePool следующим образом:

Код: Выделить всё

ZipArchive archive = ZipFile.Open("D:\\MyCompany\\MyApp\\MyService.ApiService\\MyModel.zip", ZipArchiveMode.Read);
builder.Services.AddPredictionEnginePool()
.FromFile(modelName: "MyModel", filePath: "D:\\MyCompany\\MyApp\\MyService.ApiService\\MyModel.zip",
watchForChanges: true);
Когда я запускаю этот код AddPredictionEnginePool, ошибка не выдается, но когда я просматриваю список служб, я его не вижу (возможно, у него странное имя ???).
Затем я внедряю пул в свой контроллер следующим образом:
публичный класс ModelController : ControllerBase
{

Код: Выделить всё

private readonly PredictionEnginePool _predictionEnginePool;

public ModelController(PredictionEnginePool predictionEnginePool)
{
_predictionEnginePool = predictionEnginePool;
}
При попытке использовать его следующим образом:

Код: Выделить всё

var testprediction = _predictionEnginePool.Predict(testInput);
Я получаю следующую ошибку:

Код: Выделить всё

'You need to configure a default, not named, model before you use this method.'
Я думаю, что либо EnginePool не работает, либо .mlnet не может использоваться AddPredictionEnginePool. Или я пропустил шаг, чтобы установить его в качестве модели по умолчанию? Я до сих пор не нашел реального рабочего примера использования пула, только фрагменты.

Подробнее здесь: https://stackoverflow.com/questions/790 ... enginepool
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»