machinelearning icon indicating copy to clipboard operation
machinelearning copied to clipboard

MLImage disposes in some cases after CreateEnumerable .ToArray() if there is ResizeImages in the pipeline

Open Lavshyak opened this issue 9 months ago • 0 comments

System Information:

  • OS & Version: Windows 11
  • ML.NET Version: ML.NET v4.0.2
  • .NET Version: .NET 9.0

Describe the bug In some cases MLImage disposes after CreateEnumerable .ToArray() if there is ResizeImages in the pipeline. If SourceImage size == ResizedImage size, after CreateEnumerable .ToArray() SourceImage disposes. If SourceImage size != ResizedImage size, after CreateEnumerable .ToArray() SourceImage doesn't dispose.

To Reproduce Project with xUnit and reproduction: https://github.com/Lavshyak/MLNetImageDisposingProblem

Expected behavior Provide a choice whether to dispose or not. If not, then SourceImage doesn't dispose. Or just never dispose. Or just write about it in red text in the documentation.

Screenshots, Code, Sample Projects Project with xUnit and reproduction: https://github.com/Lavshyak/MLNetImageDisposingProblem

Lavshyak avatar Apr 14 '25 13:04 Lavshyak