TensorFlow image classification tests running out of memory on Linux x64
Maintainers usually reply within 2 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 62/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- csharp, linux, tensorflow
- Domain
- machine-learning, testing
Research direction
Start with the six TensorFlow image-classification training methods and their test attributes in the TensorFlow test project, then check how platform and build configuration conditions are applied to nearby tests. Quarantine the training methods as a group for Linux x64 local runs and both Debug and Release configurations, preserving other TensorFlow tests and platforms. Done means the specified training cases are skipped on Linux x64 while the remaining tests stay enabled.
Written by the indexing model from the issue text.
Description
System Information (please complete the following information):
- OS & Version: Ubuntu 22.04 and CentOS Stream 9 x64 Helix containers.
- ML.NET Version: PR #7833, commit
100af589f. - .NET Version: .NET 8, Debug and Release.
Describe the bug
Accurate native-library detection enables previously skipped TensorFlow tests. The process exits with code 137 during TensorFlowImageClassificationWithExponentialLRScheduling in Release and TensorFlowImageClassificationBadImages in Debug. Debug logs report peak memory up to 7.2 GB. An OOM kill is suspected, not kernel-confirmed.
Screenshots, Code, Sample Projects
Ubuntu Debug log · Ubuntu Release log
Additional context
Temporarily quarantine the six image-classification training methods (10 test cases) as a group on Linux x64, including local runs and both build configurations. This covers default training, architecture variants, learning-rate scheduling, early stopping, and bad images. Keep non-training TensorFlow tests and other platforms enabled.
Reproduced outside Helix in Ubuntu 22.04 WSL x64 with the original Release binaries, .NET 8.0.16 and two CPUs: at a 16 GiB limit, 36 tests passed with 2 existing skips (peak RSS about 14.2 GiB). At an experimental 8 GiB limit, the kernel OOM-killed dotnet during BadImages. This does not establish the actual Helix memory limit. Memory retention across tests may contribute, so individual skips may only move the failure later.
The two initial skips were honored, but build 1643911 was killed later in TensorFlowImageClassification or TensorFlowImageClassificationEarlyStopping (Ubuntu Release log). The latest payload also OOM-kills at 8 GiB in WSL. Enabling the existing per-test GC option did not prevent the OOM, so that experiment was reverted.
With the training-group quarantine, the same 8 GiB WSL reproduction completes successfully: 26 passed and 8 reported skips (6 training methods plus 2 existing model-unavailable skips), with peak RSS about 1.26 GiB. The two quarantined theories cover multiple data rows. Linux CI still needs to rerun; this is a temporary coverage reduction, not a fix for the memory retention.
- Dominant language
- C#
- Stars
- 9.4k
- Forks
- 2k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 51
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from dotnet/machinelearning
-
area-Native untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
dotnet/machinelearning#7837 ·
Maintainers usually reply within 2 days
-
ToArrowRecordBatches accumulates arrays from previous batches, producing invalid record batchesOpenarea-DataFrame bug untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
dotnet/machinelearning#7799 ·
Maintainers usually reply within 2 days
-
LlamaTokenizer encodes some runs of repeated characters differently from SentencePiecePossibly taken @Laurianti claimed this 20 days ago. Openuntriaged
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
dotnet/machinelearning#7751 · 1 comment ·
Maintainers usually reply within 2 days
-
BertTokenizer merges words separated only by `\n`, `\t` or `\r`Possibly taken @rosebyte claimed this 28 days ago. Openarea-Tokenizers green
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
dotnet/machinelearning#7724 · 3 comments · 1 assignee ·
Maintainers usually reply within 2 days
-
area-TimeSeries documentation untriaged
Difficulty 1/5 Under an hour Newbie friendliness 90/100
dotnet/machinelearning#7205 ·
Maintainers usually reply within 2 days
All issues in dotnet/machinelearning
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
bug priority: P2
Difficulty 1/5 Under an hour Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
IridiumIO/CompactGUI#699 ·
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day