#c# #tensorflow #ml.net
#c# #tensorflow #ml.net
Вопрос:
Я только начинаю с tensorflow и ml.net. Документы повсюду. Изначально я просто хочу загрузить модель тензорного потока в виде собаки или кошки, а затем добавить в нее изображение кошки и получить прогноз. Насколько я понимаю, модель уже «обучена», и поэтому мне не нужно вводить в нее какие-либо входные данные. Я думаю, что мне нужно только ввести изображение и получить предсказание.
using System;
using Microsoft.ML;
namespace DogOrCatConsole
{
class Program
{
static void Main(string[] args)
{
// Create MLContext
MLContext mlContext = new MLContext();
using var tf = mlContext.Model.LoadTensorFlowModel("model.pb");
var inputSchema = tf.GetInputSchema();
var modelSchema = tf.GetModelSchema();
}
}
}
До сих пор я использовал Nuget для извлечения нескольких разных библиотек:
- Microsoft.ML
- Microsoft.ML.ImageAnalytics
- Microsoft.ML.TensorFlow
- Microsoft.ML.Vision
- SciSharp.Тензорный поток.Повторить
Я взял модель из руководства Microsoft, где показано, как использовать http-функцию python для взаимодействия с этой моделью. Я уже сократил изображение до 256×256, поэтому пропускаю некоторые этапы предварительной обработки в примере python. Я изо всех сил пытаюсь выяснить различия api между тем, что я вижу в примере python, и c #.
Ответ №1:
Приведенный выше код загружает только модель Tensorflow. Код для прогнозирования отсутствует. Вы смотрели на https://learn.microsoft.com/en-us/dotnet/machine-learning/tutorials/image-classification Он использует файл *.pb и LoadTensorFlowModel() API. Вам нужно добавить модель score tensorflow, чтобы делать прогнозы. Приведенные ниже строки делают это.
.Append(mlContext.Model.LoadTensorFlowModel(_inceptionTensorFlowModel).
ScoreTensorFlowModel(outputColumnNames: new[] { "softmax2_pre_activation" }, inputColumnNames: new[] { "input" }, addBatchDimensionInput: true))