From 57c7b2f4aad538c48b5b445777eef0a77ecc0c80 Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Wed, 11 Jan 2023 15:25:45 -0700 Subject: [PATCH 1/2] fixing bug with multi-threaded access --- src/Microsoft.ML.OnnxTransformer/OnnxTransform.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.ML.OnnxTransformer/OnnxTransform.cs b/src/Microsoft.ML.OnnxTransformer/OnnxTransform.cs index 1f8ef34995..1e6fb11a71 100644 --- a/src/Microsoft.ML.OnnxTransformer/OnnxTransform.cs +++ b/src/Microsoft.ML.OnnxTransformer/OnnxTransform.cs @@ -840,8 +840,9 @@ private NamedOnnxValue GetNamedOnnxValueUnknownSize() { GetNamedOnnxValueCore(); - _tensorShape[_zeroIndex] = _vBufferDense.Length / _denominator; - return OnnxUtils.CreateNamedOnnxValue(_colName, _vBufferDense.GetValues(), _tensorShape); + var tensorShape = new OnnxShape(_tensorShape); + tensorShape[_zeroIndex] = _vBufferDense.Length / _denominator; + return OnnxUtils.CreateNamedOnnxValue(_colName, _vBufferDense.GetValues(), tensorShape); } } } From 96055c596917d67e0428b50f993d641e8b013537 Mon Sep 17 00:00:00 2001 From: Michael Sharp Date: Wed, 11 Jan 2023 16:17:44 -0700 Subject: [PATCH 2/2] Changed where copy was being made so its still only made once. --- src/Microsoft.ML.OnnxTransformer/OnnxTransform.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Microsoft.ML.OnnxTransformer/OnnxTransform.cs b/src/Microsoft.ML.OnnxTransformer/OnnxTransform.cs index 1e6fb11a71..99d431f882 100644 --- a/src/Microsoft.ML.OnnxTransformer/OnnxTransform.cs +++ b/src/Microsoft.ML.OnnxTransformer/OnnxTransform.cs @@ -805,7 +805,7 @@ private class NamedOnnxValueGetterVec : INamedOnnxValueGetter public NamedOnnxValueGetterVec(DataViewRow input, int colIndex, OnnxShape tensorShape) { _srcGetter = input.GetGetter>(input.Schema[colIndex]); - _tensorShape = tensorShape; + _tensorShape = new OnnxShape(tensorShape); _colName = input.Schema[colIndex].Name; _vBuffer = default; _vBufferDense = default; @@ -840,9 +840,8 @@ private NamedOnnxValue GetNamedOnnxValueUnknownSize() { GetNamedOnnxValueCore(); - var tensorShape = new OnnxShape(_tensorShape); - tensorShape[_zeroIndex] = _vBufferDense.Length / _denominator; - return OnnxUtils.CreateNamedOnnxValue(_colName, _vBufferDense.GetValues(), tensorShape); + _tensorShape[_zeroIndex] = _vBufferDense.Length / _denominator; + return OnnxUtils.CreateNamedOnnxValue(_colName, _vBufferDense.GetValues(), _tensorShape); } } }