Fix the component bugs surfaced by the full run - #59
Open
rcannood wants to merge 6 commits into
Open
Conversation
`removed_vars` round-trips through h5ad as an array, so the plain truthiness test raised "The truth value of an array with more than one element is ambiguous" as soon as training dropped more than one all-zero feature -- which is every dataset since #33.
…o avoid unnecessary retries
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Describe your changes
Component bugs found in the logs of run
1gVHaBsNbAHcfT. Each one is verified rather than reasoned about; where I could not close something out I left it out of this PR and listed it below.correlationandmseno longer halt on non-finite predictionsss_opmemittedNaNonpbmc_cite/normal, andsd()on that prediction returnsNA, socorrelationdied onif (NA)--missing value where TRUE/FALSE needed-- rather than scoring the method.msedid not crash but wrote aNaNscore. Both now score non-finite entries as zero, which is the convention already used for the zero-variance case. A method emittingNaNshould land at the bottom of the scale, not take the metric down with it.I also dropped the two commented-out
!is.finite(...)lines incorrelation, which read like a disabled guard for exactly this.Checked by poisoning a prediction with
NaNandInfand running both metrics: all six correlation metrics and both mse metrics come out finite, andviash teststays green on both.exit 99 instead of
ValueErrorbabelandscbutterflyare GEX<->ATAC only, but raised on the CITE datasets, so they failed with exit 1 and were retried three times each -- 16 of their 25 failures were nothing but this, and the whole run produced no exit-99 task at all.exit_non_applicable()already existed forguanlab_dengkw_pm.senkin_tmp_traincan finally use a GPUIt went 0/8, seven walltime kills and seven OOMs. The cause is a CUDA mismatch rather than a resource shortfall: inside the real image on a real T4, the container gets the GPU and PyTorch uses it (
torch cuda: True 13.1), but the pip-installed TensorFlow 2.21 is built against CUDA 12.5 and fails withError loading CUDA libraries.tensorflow[and-cuda]does not rescue it -- the twelvenvidia-*-cu12wheels install cleanly and TF still reports no GPU.openproblems/base_tensorflow_nvidia:1works, verified in a realsrun -p gpuallocation:nvcr have stopped building TensorFlow containers, but
25.02-tf2-py3is still pullable and core has already published a base image from it, so nothing is blocked.tensorflowdrops out of the pip list since the base carries it -- pinning it is what broke the CUDA pairing in the first place.novel_predicttruthinessuns["removed_vars"]round-trips through h5ad as an array, soif ...uns.get("removed_vars"):raised the truth value of an array with more than one element is ambiguous. This has been failing since #33 made it record every all-zero feature rather than the first.ss_opmno longer asks for 222 GiBbuild_metadata()densified the whole normalized layer to compute six per-cell statistics, which isUnable to allocate 222. GiB for an array with shape (130095, 228942)on the multiome datasets -- a size that fits on no node. Now done one row block at a time; I checked all six statistics come out bit-identical.Still open
Not fixed here, so the next person is not surprised:
cellmapper_scvi-- 0/8,KeyError: 'mod2_pred'after training completes.ss_opm-- theNaNitself. It enters inside ss_opm's ownIterativeSVDImputator.transform, upstream of the metric; the two safe wrappers already inss_opm_traindo not cover it.simple_mlp_train--split()masks onsite == 's1'/'s2'/'s3'parsed fromobs['batch'][:2]. The 2022 pbmc batches do not use the NeurIPS-2021s#d#naming, so the validation fold is empty,valid_RMSEis never logged, andckpt_path='best'has no checkpoint. Needs the same kind of fallbacknovelgot in Seed novel's internal validation split #46.guanlab_dengkw_pm-- kernel ridge builds ann x nkernel and dies inscipy.linalg.solve(10 segfaults, 2 OOMs). Probably an inherent limit on the 2022 datasets rather than a defect. It also runs ~58 threads against a 30-core allocation, which nothing enforces.Checklist before requesting a review
I have performed a self-review of my code
Check the correct box. Does this PR contain:
Proposed changes are described in the CHANGELOG.md
CI Tests succeed and look good!