dotnet / dotnet/machinelearning-samples
Image Data Normalization
- 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
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