dotnet / dotnet/machinelearning-samples

Image Data Normalization

Offen
#911 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
PowerShell
Sterne
4.7k
Forks
2.7k
Ø Merge
2 T. 22 Std.
Gemergte PRs (30 T.)
1

Beschreibung

I built onnx model by pytorch, and use the model like as follow code in python.
I want load the onnx model in ML.NET, but I do not know how to normalize image data.
To undestand ML.NET, I read as follow tutorial and writing code as follow in ML.NET.

https://docs.microsoft.com/ja-jp/dotnet/machine-learning/tutorials/

As follow code in ML.NET, image data is not normalized.
Are there any idea to normalize in ML.NET ?

//Python
'''
PRED_MODEL = onnx.load(".//onnxfile//pytorch.onnx")
PRED_CONTENT = PRED_MODEL.SerializeToString()
PRED_SESS = onnxruntime.InferenceSession(PRED_CONTENT)

mean = (0.485,0.456,0.406)
std = (0.229,0.224,0.225)
transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize(mean, std)])
img3 = Image.fromarray(img2) #img2 is 3D image data of numpy
img_transform = transform(img3).unsqueeze(0)
x1 = img_transform.cpu().numpy()

predict = PRED_SESS.run([session_output[0].name], {session_input[0].name:x1})[0]
'''

//ML.NET
'''
var imageLoader = _ml.Transforms.LoadImages(_inputColumnNames[0], string.Empty, nameof(ImageInputData.ImagePath));
var imageResizer = _ml.Transforms.ResizeImages(_inputColumnNames[0], imageWidth, imageHeight);
var pixelExtractor = _ml.Transforms.ExtractPixels(_inputColumnNames[0], interleavePixelColors: True, colorsToExtract: ImagePixelExtractingEstimator.ColorBits.Red, scaleImage: 1);
var onnxEstimator = _ml.Transforms.ApplyOnnxModel(_outputColumnNames, _inputColumnNames, onnxModelPath);
var data = _ml.Data.LoadFromEnumerable(new List());
var pipeline = imageLoader.Append(imageResizer).Append(pixelExtractor).Append(onnxEstimator);
model = pipeline.Fit(data);
'''

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Das Issue enthält ein Python-Preprocessing-Snippet und eine ML.NET-Pipeline mit LoadImages, ResizeImages, ExtractPixels und ApplyOnnxModel; beginne damit, diese Stufen mit dem verlinkten Tutorial zu vergleichen. Als abgeschlossen gilt die Aufgabe, wenn die ML.NET-Eingabe dieselbe Normalisierung wie die Python-mean/std-Transformation anwendet und das ONNX-Modell mit dieser Eingabe ausgeführt werden kann.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp, python, pytorch
Bereich
machine-learning
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.