-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Documentation #55
Documentation #55
Conversation
…`Instance` classes into separate modules within `io`
…`Instance` classes into separate modules within `io`
…nto aadi/refactor-data-structures
Warning Rate limit exceeded@aaprasad has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 16 minutes and 9 seconds before requesting another review. How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. WalkthroughThe recent updates enhance the Changes
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
README.md
Outdated
## Usage | ||
|
||
Here we describe a basic workflow from setting up data thru training and running inference |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spelling
README.md
Outdated
|
||
### Step 1.1: Get detections | ||
One of the main advantages of this system is that we ***decouple** detection and tracking. This means that our model assumes that you already have detections available when you are ready to track. In order to get these detections we recommend a couple methods. For animal pose-estimation, we highly recommend heading over to [`sleap`](https://sleap.ai) and running through their work flow. For microscopy tracking, checkout [`trackmate`](https://imagej.net/plugins/trackmate/) as well as [`cellpose`](https://www.cellpose.org) and [`StarDist`](https://imagej.net/plugins/stardist). If you are only doing tracking (ie inference), then you once you have your detections you are good to go! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Double check markdown formatting (e.g., around decouple)
README.md
Outdated
One of the main advantages of this system is that we ***decouple** detection and tracking. This means that our model assumes that you already have detections available when you are ready to track. In order to get these detections we recommend a couple methods. For animal pose-estimation, we highly recommend heading over to [`sleap`](https://sleap.ai) and running through their work flow. For microscopy tracking, checkout [`trackmate`](https://imagej.net/plugins/trackmate/) as well as [`cellpose`](https://www.cellpose.org) and [`StarDist`](https://imagej.net/plugins/stardist). If you are only doing tracking (ie inference), then you once you have your detections you are good to go! | ||
### ***FOR TRAINING*** Step 1.2 Proofreading | ||
Otherwise, we recommend using the `sleap-label` gui to proofread your track labels. For animal tracking, if you used `sleap` you can start proofreading right away. Otherwise if you used a different system (e.g `DeepLabCut`) check out `sleap.io.format` for available converters. With microscopy, we highly recommend starting out with `trackmate` and then proofreading in `sleap`. Here is [a converter from trackmate's output to a `.slp`](https://gist.github.com/aaprasad/5243be0785a40e9dafa1697ce2258e3e) file. In general, you can use [`sleap-io`](https://io.sleap.ai/latest/) to write a custom converter to `.slp` if you'd like to use the sleap-gui for proofreading |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need a lot more information in this section. It needs to be clear that you need tracks to be assigned. An explicit example or way to check is also necessary.
Ultimately, a user needs to know whether or not their data is ready for use, and if not, how to prepare it. This section does not achieve that.
README.md
Outdated
One of the main advantages of this system is that we ***decouple** detection and tracking. This means that our model assumes that you already have detections available when you are ready to track. In order to get these detections we recommend a couple methods. For animal pose-estimation, we highly recommend heading over to [`sleap`](https://sleap.ai) and running through their work flow. For microscopy tracking, checkout [`trackmate`](https://imagej.net/plugins/trackmate/) as well as [`cellpose`](https://www.cellpose.org) and [`StarDist`](https://imagej.net/plugins/stardist). If you are only doing tracking (ie inference), then you once you have your detections you are good to go! | ||
### ***FOR TRAINING*** Step 1.2 Proofreading | ||
Otherwise, we recommend using the `sleap-label` gui to proofread your track labels. For animal tracking, if you used `sleap` you can start proofreading right away. Otherwise if you used a different system (e.g `DeepLabCut`) check out `sleap.io.format` for available converters. With microscopy, we highly recommend starting out with `trackmate` and then proofreading in `sleap`. Here is [a converter from trackmate's output to a `.slp`](https://gist.github.com/aaprasad/5243be0785a40e9dafa1697ce2258e3e) file. In general, you can use [`sleap-io`](https://io.sleap.ai/latest/) to write a custom converter to `.slp` if you'd like to use the sleap-gui for proofreading |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Style note: Also, backticks are for code and CLI commands, or package names that are also importable/installable. SLEAP should be SLEAP, not sleap
, same with the other softwares. sleap-io
would be an exception since you can pip install sleap-io
. The extensions (.slp
) are also ok since you would use that string as a literal in code.
README.md
Outdated
vid_1.{VID_EXTENSION} | ||
vid_1.{LABELS_EXTENSION} # these files don't need tracks | ||
... | ||
vid_n.{VID_EXTENSION} | ||
vid_n.{LABELS_EXTENSION} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Put these in another section when you get to inference.
Also, do we really support any labels extension that isn't .slp
? Either way, let's just be explicit.
We should also be explicit about the video extensions. Especially since we're doing microscopy, it would be good to know if zarr and multi-frame TIFF stacks are supported. Since sleap-io
provides the layer for doing video reading, it's totally okay to redirect users to the sleap-io docs. (I'll add more explicit info there.)
biogtr/inference/configs/README.md
Outdated
@@ -0,0 +1,42 @@ | |||
# Description of inference params |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs an inline example of a config, maybe broken up by sections. Right now, it's not obvious what the user is supposed to be looking at on another screen/tab as they use the information in here for reference.
At a minimum, add a link to the reference example config that has all of these fields.
biogtr/training/configs/README.md
Outdated
@@ -0,0 +1,180 @@ | |||
# Description of training parameters |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See above -- needs link to a concrete example.
biogtr/training/configs/README.md
Outdated
```YAML | ||
augmentations: | ||
Rotate: | ||
limit: 45 | ||
p: 0.3 | ||
... | ||
MotionBlur: | ||
blur_limit: [3,7] | ||
p: 0.3 | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great! A concrete example for how this subsection should be written. Have more of these everywhere.
biogtr/training/configs/README.md
Outdated
|
||
### `dataloader` | ||
|
||
This section outlines the params needed for the dataloader. Should have a `train_dataloader` and optionally `val_dataloader`/`test_dataloader` keys. See [`torch.utils.data.Dataloader`](https://pytorch.org/docs/stable/data.html#torch.utils.data.DataLoader) for available args. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Provide example and you NEED an entry for each field that we actually use in the yaml.
The docs you link to take many arguments that are not YAML-serializable (e.g., function handles), and it's also very unclear how these args are used in this codebase specifically.
biogtr/training/configs/README.md
Outdated
|
||
* `logger_type`: A string indicating which logger to use. Available loggers are {`"CSVLogger"`, `"TensorBoardLogger"`,`"WandbLogger"`} | ||
|
||
Note: Please see the documentation for the corresponding logger at [`lightning.loggers`](https://lightning.ai/docs/pytorch/stable/api_references.html#loggers) for available parameters. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No. Include the documentation HERE.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 23
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (7)
- README.md (1 hunks)
- dreem/datasets/sleap_dataset.py (1 hunks)
- dreem/inference/configs/README.md (1 hunks)
- dreem/inference/track_queue.py (2 hunks)
- dreem/training/configs/README.md (1 hunks)
- dreem/training/configs/base.yaml (1 hunks)
- git (1 hunks)
Files skipped from review due to trivial changes (1)
- dreem/training/configs/base.yaml
Additional context used
LanguageTool
dreem/inference/configs/README.md
[uncategorized] ~5-~5: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...nce. *ckpt_path
: Astr
containing the path to the save...
[uncategorized] ~12-~12: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...... ``` *out_dir
: A `str` containing a directory path whe...
[uncategorized] ~23-~23: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...configures the tracker. *window_size
: the size of the window used during slid...
[uncategorized] ~24-~24: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ing sliding inference. *use_vis_feats
: Whether or not to use visual feature ex...
[style] ~24-~24: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...g sliding inference. *use_vis_feats
: Whether or not to use visual feature extractor. * `ove...
[uncategorized] ~25-~25: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...al feature extractor. *overlap_thresh
: the trajectory overlap threshold to be ...
[uncategorized] ~26-~26: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... be used for assignment. *mult_thresh
: Whether or not to use weight threshold....
[style] ~26-~26: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...e used for assignment. *mult_thresh
: Whether or not to use weight threshold. *decay_time
...
[uncategorized] ~27-~27: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... to use weight threshold. *decay_time
: weight fordecay_time
postprocessing....
[uncategorized] ~28-~28: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...fordecay_time
postprocessing. *iou
: Either{None, '', "mult" or "max"}
. W...
[uncategorized] ~29-~29: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...max iou reweighting. *max_center_dist
: distance threshold for filtering trajec...
[uncategorized] ~30-~30: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ry score matrix. *persistent_tracking
: whether to keep a buffer across chunks ...
[uncategorized] ~31-~31: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...buffer across chunks or not. *max_gap
: the max number of frames a trajectory c...
[uncategorized] ~32-~32: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ssing before termination. *max_tracks
: the maximum number of tracks that can b...
[uncategorized] ~48-~48: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...## [
dataset`](inference.yaml#L10-16): This section contains the params for in...
[uncategorized] ~53-~53: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...asets/base_dataset.py) args *padding
: Anint
representing the amount of pad...
[uncategorized] ~55-~55: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...around which a crop will form. *chunk
: Whether or not to chunk videos into sma...
[style] ~55-~55: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...ound which a crop will form. *chunk
: Whether or not to chunk videos into smaller clips to f...
[uncategorized] ~58-~58: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...for training or validation. *n_chunks
: Number of chunks to subsample from. Can...
[uncategorized] ~62-~62: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...tracking challenge datasets. ####dir
: This section allows you to pass a direc...
[uncategorized] ~65-~65: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... to labels/videos individually *path
: The path to the dir where the data is s...
[uncategorized] ~90-~90: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... all visible anchors. *handle_missing
: how to handle missing single nodes. one...
[typographical] ~92-~92: Consider adding a comma. (IF_THEN_COMMA)
Context: ... missing theanchor
. * ifignore
then we use a mask instead of a crop and nan...
[style] ~93-~93: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Context: ... a crop and nan centroids/bboxes. * ifcentroid
then we default to the pose ...
[typographical] ~93-~93: Consider adding a comma. (IF_THEN_COMMA)
Context: ...an centroids/bboxes. * ifcentroid
then we default to the pose centroid as the ...README.md
[style] ~35-~35: The word ‘thru’ is informal. Consider replacing it with “through”. (THRU)
Context: ...e a basic workflow from setting up data thru training and running inference. Regardl...
[style] ~35-~35: The word ‘thru’ is informal. Consider replacing it with “through”. (THRU)
Context: ...ference, we recommend at least skimming thru the entire tutorial as there may be use...
[uncategorized] ~43-~43: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... respective docs to get some familiarity but is not necessary. ### Setup #### Step ...
[style] ~67-~67: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...#### Step 1: Generate Ground Truth Data In order to train a model you need 2 things. 1. A v...
[uncategorized] ~71-~71: A comma might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
Context: ...ported file types. - For microscopy data we currently support.tif
files. Vide...
[grammar] ~77-~77: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...rate your initial labels we recommend a couple methods. - For animal pose-estimation, we high...
[uncategorized] ~78-~78: Write this as one word if you mean the noun “workflow”. (WORK_COMPOUNDS)
Context: ...s://sleap.ai) and running through their work flow. - For microscopy tracking, check out...
[uncategorized] ~81-~81: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ... you'd like to use a different method, (e.g DeepLabCut or ilastik etc), the easiest...
[style] ~81-~81: In American English, abbreviations like “etc.” require a period. (ETC_PERIOD)
Context: ...rent method, (e.g DeepLabCut or ilastik etc), the easiest way to make your data com...
[uncategorized] ~81-~81: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE_2)
Context: ...ively, you can write a custom dataloader but that will take significantly more overh...
[uncategorized] ~83-~83: If this is a compound adjective that modifies the following noun, use a hyphen. (EN_COMPOUND_ADJECTIVE_INTERNAL)
Context: ... thing to train a good model is to have high quality data. In our case good quality means tw...
[typographical] ~83-~83: At the start of a sentence, a comma is usually required for the expression ‘In “our case,”’. (COMMA_OF_IN_PRPS_CASE)
Context: ... model is to have high quality data. In our case good quality means two things: 1. No i...
[style] ~87-~87: To elevate your writing, try using a synonym here. (HARD_TO)
Context: ...o avoid having detection coordinates be hard to distinguish. For instance, with anim...
[uncategorized] ~87-~87: The preposition “in” seems more likely in this position than the preposition “on”. (AI_EN_LECTOR_REPLACEMENT_PREPOSITION_ON_IN)
Context: ... we want to avoid having the key points on two instances. For segmentation, the bo...
[formatting] ~87-~87: Consider inserting a comma before ‘however’. (HOWEVER_MISSING_COMMA)
Context: ...ld be as tight as possible. This may be unavoidable however, in cases of occlusion and overlap. See ...
[uncategorized] ~88-~88: Possible missing preposition found. (AI_EN_LECTOR_MISSING_PREPOSITION)
Context: ... and bad detections. //TODO add example good vs bad detection. We recommend using t...
[style] ~92-~92: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...ting data to a SLEAP compatible format. In order to use the SLEAP gui you'll need to have y...
[uncategorized] ~93-~93: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...tible format. In order to use the SLEAP gui you'll need to have your labels and vid...
[uncategorized] ~93-~93: A comma may be missing after the conjunctive/linking adverb ‘Otherwise’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ... you can start proofreading right away. Otherwise if you used a different system (e.g Dee...
[uncategorized] ~93-~93: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...herwise if you used a different system (e.g DeepLabCut) check out [`sleap.io.conver...
[uncategorized] ~93-~93: A comma might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
Context: ... used a different system (e.g DeepLabCut) check out [sleap.io.convert
](https://...
[uncategorized] ~93-~93: A punctuation mark might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION)
Context: ... converter from trackmate's output to a.slp
](https://gist.github.com/aaprasad/...
[uncategorized] ~93-~93: The grammatical number of this noun doesn’t look right. Consider replacing it. (AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
Context: ...freading. Once you've ensured that your labels files have no identity switches and you...
[grammar] ~97-~97: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...e recommend organizing your data with a couple things in mind. 1. Match video and labels fil...
[uncategorized] ~99-~99: The grammatical number of this noun doesn’t look right. Consider replacing it. (AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
Context: ...ple things in mind. 1. Match video and labels file stems. Because our dataloaders jus...
[style] ~99-~99: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...lp, file2.slp], [vid1.mp4, vid2.mp4]`). In order to make programmatic file searching easy i...
[uncategorized] ~99-~99: A comma might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
Context: ...der to make programmatic file searching easy its best to save your labels and vid fi...
[uncategorized] ~99-~99: “its” (belonging to it) seems less likely than “it’s” (it is) (AI_HYDRA_LEO_CPT_ITS_ITIS)
Context: ...o make programmatic file searching easy its best to save your labels and vid files ...
[style] ~99-~99: ‘vid’ is informal. Consider replacing it. (VID)
Context: ...g easy its best to save your labels and vid files with the same stem so that you ca...
[uncategorized] ~99-~99: “its” (belonging to it) seems less likely than “it’s” (it is) (AI_HYDRA_LEO_CPT_ITS_ITIS)
Context: ...ensure the ordering will be consistent. Its also just best practice so you know whi...
[uncategorized] ~99-~99: It seems likely that a singular genitive (’s) apostrophe is missing. (AI_HYDRA_LEO_APOSTROPHE_S_XS)
Context: ...best practice so you know which video a labels file corresponds to. 2. Store correspon...
[style] ~133-~133: Consider replacing this word to strengthen your wording. (AND_THAT)
Context: ...train script if you're an advanced user and would like to have some additional flex...
[grammar] ~137-~137: The word “checkout” is a noun. The verb is spelled with a space. (NOUN_VERB_CONFUSION)
Context: ... parameters needed for training. Please checkout the [README
](biogtr/training/configs/...
[uncategorized] ~137-~137: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...set of parameters when training (for an example see [`biogtr/training/configs/params.ya...
[uncategorized] ~148-~148: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...side my/home/aaprasad/biogtr_configs
directory I can call ```bash python /home/aaprasa...
[uncategorized] ~153-~153: A comma might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
Context: ... > Note: you can use relative paths as well but may be a bit riskier so we recommen...
[uncategorized] ~153-~153: A comma might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
Context: ...relative paths as well but may be a bit riskier so we recommend absolute paths whenever...
[grammar] ~167-~167: It seems like one article is redundant in this context. (A_RB_A_JJ_NN)
Context: ...biogtr_configs` directory that contains a only a small selection of parameters that I'd like t...
[uncategorized] ~179-~179: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...E_CONFIG_STEM] section.param=value ``` e.g If now I want to override a couple para...
[grammar] ~180-~180: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...ue ``` e.g If now I want to override a couple parameters again, say change the number of attenti...
[grammar] ~186-~186: The verb “add” needs to be in the to-infinitive form. (MISSING_TO_BEFORE_A_VERB)
Context: ...wise an error will be thrown > if you'd like add a new parameter you can add++
to the...
[uncategorized] ~187-~187: A comma might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
Context: ...arameter exists, otherwise create a new one you can add a single+
to the front o...
[typographical] ~188-~188: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence. (THUS_SENTENCE)
Context: ...t to make sure you've matched the param exactly, otherwise it will simply add a new parameter with...
[uncategorized] ~189-~189: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...and the original value won't change. > e.g doingmodel.n_head=3
will cause the o...
[uncategorized] ~193-~193: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...d the direct override or the file-based override however you can technically do both via...
[uncategorized] ~203-~203: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...g CLI and file-based override syntax > (e.g make suresection.param
doesn't appea...
[uncategorized] ~214-~214: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...tem is that we decouple detection and tracking so you can use off-the-shelf high perfo...
[style] ~214-~214: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...estimators/segementors. This means that in order to run inference(tracking) with our model ...
[uncategorized] ~214-~214: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...der to run inference(tracking) with our model you need 3 things. 1. A pretrained mode...
[uncategorized] ~218-~218: A comma might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
Context: ...ported file types. - For microscopy data we currently support.tif
files. Vide...
[style] ~219-~219: Did you mean ‘different from’? ‘Different than’ is often considered colloquial style. (DIFFERENT_THAN)
Context: ... This labels file is slightly different than in training because we only need detect...
[typographical] ~219-~219: Consider adding two commas here. (OF_COURSE_COMMA)
Context: ...tions for tracking since the tracks will of course come from our model predictions. We st...
[uncategorized] ~221-~221: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...g SLEAP and TrackMate to generate these labels however this time you would only need t...
[uncategorized] ~221-~221: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...d your detections if you'd like to. For TrackMate we recommend using the "spots table" la...
[uncategorized] ~225-~225: The grammatical number of this noun doesn’t look right. Consider replacing it. (AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
Context: ...e used for training. 1. Match video and labels file stems. Because our dataloaders jus...
[style] ~225-~225: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...lp, file2.slp], [vid1.mp4, vid2.mp4]`). In order to make programmatic file searching easy i...
[uncategorized] ~225-~225: A comma might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
Context: ...der to make programmatic file searching easy its best to save your labels and vid fi...
[uncategorized] ~225-~225: “its” (belonging to it) seems less likely than “it’s” (it is) (AI_HYDRA_LEO_CPT_ITS_ITIS)
Context: ...o make programmatic file searching easy its best to save your labels and vid files ...
[style] ~225-~225: ‘vid’ is informal. Consider replacing it. (VID)
Context: ...g easy its best to save your labels and vid files with the same stem so that you ca...
[uncategorized] ~225-~225: “its” (belonging to it) seems less likely than “it’s” (it is) (AI_HYDRA_LEO_CPT_ITS_ITIS)
Context: ...ensure the ordering will be consistent. Its also just best practice so you know whi...
[uncategorized] ~225-~225: It seems likely that a singular genitive (’s) apostrophe is missing. (AI_HYDRA_LEO_APOSTROPHE_S_XS)
Context: ...best practice so you know which video a labels file corresponds to. 2. Store correspon...
[misspelling] ~244-~244: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...set up a config file that specifies 1. ackpt_path
2. aout_dir
3. a `Tracke...
[misspelling] ~245-~245: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...ile that specifies 1. ackpt_path
2. aout_dir
3. aTracker
config 4. a `d...
[uncategorized] ~253-~253: A comma may be missing after the conjunctive/linking adverb ‘Thus’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ...x for specifying arguments via the cli. Thus you can run inference via: ```bash pyt...
[uncategorized] ~266-~266: A comma might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
Context: ...y parameters during inference as during training we recommend just using the cli-based o...
[uncategorized] ~266-~266: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE)
Context: ...ased override rather than the file based but you're more than welcome to do so. In ...
[style] ~267-~267: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...but you're more than welcome to do so. In order to override params via the CLI, we can use...
[uncategorized] ~272-~272: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...[CONFIG_STEM] section.param=[VALUE] ``` e.g if I want to set the window size of the...
[typographical] ~278-~278: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence. (THUS_SENTENCE)
Context: ...pecified in the config it will save to./[OUTDIR]/[VID_NAME].biogtr_inference.slp
, otherwise it will just save to `./results/[VID_NA...dreem/training/configs/README.md
[uncategorized] ~5-~5: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...llwill initialize the value to
None` e.g > ```YAML > model: > d_model: #defaul...
[style] ~31-~31: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...) *return_intermediate_dec
: (bool
) whether or not to return the output from the intermedi...
[style] ~32-~32: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...iate decoder layers. *norm
: (bool
) whether or not to normalize output of encoder and deco...
[uncategorized] ~33-~33: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...er and decoder. *num_layers_attn_head
: Anint
The number of layers in the [`...
[uncategorized] ~37-~37: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...###embedding_meta
: This section contains parameters for ...
[style] ~49-~49: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...ition embedding *normalize
: (bool
) whether or not to normalize the positions (Only used i...
[style] ~194-~194: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...i-anchor crops *pretrained
: (bool
) Whether or not to use a pretrained backbone or initial...
[uncategorized] ~213-~213: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... ... ... ...##### `torchvision`:
YAML ... model: ... encoder_...
[uncategorized] ~228-~228: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...``` ###model
Example: Putting it all together your `model` config section will look s...
[typographical] ~281-~281: Consider adding a comma here. (PLEASE_COMMA)
Context: ... is our default. For more advanced users please see the respective pytorch documentatio...
[grammar] ~289-~289: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...nalty) ### Examples: Here we provide a couple examples for different optimizers: #### [Adam
]...
[typographical] ~322-~322: Consider adding a comma here. (PLEASE_COMMA)
Context: ... is our default. For more advanced users please see the respective pytorch documentatio...
[uncategorized] ~326-~326: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...`) The number of allowed epochs with no improvement after which the learning rate will be r...
[grammar] ~331-~331: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...in` mode. ### Examples: Here we give a couple examples of configs for different schedulers: #...
[uncategorized] ~358-~358: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: .... ``` ##tracker
: This section contains parameters for i...
[uncategorized] ~362-~362: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...tializing theTracker
*window_size
: the size of the window used during slid...
[uncategorized] ~363-~363: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ing sliding inference. *use_vis_feats
: Whether or not to use visual feature ex...
[style] ~363-~363: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...g sliding inference. *use_vis_feats
: Whether or not to use visual feature extractor. * `ove...
[uncategorized] ~364-~364: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...al feature extractor. *overlap_thresh
: the trajectory overlap threshold to be ...
[uncategorized] ~365-~365: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... be used for assignment. *mult_thresh
: Whether or not to use weight threshold....
[style] ~365-~365: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...e used for assignment. *mult_thresh
: Whether or not to use weight threshold. *decay_time
...
[uncategorized] ~366-~366: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... to use weight threshold. *decay_time
: weight fordecay_time
postprocessing....
[uncategorized] ~367-~367: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...fordecay_time
postprocessing. *iou
: Either{None, '', "mult" or "max"}
. W...
[uncategorized] ~368-~368: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...max iou reweighting. *max_center_dist
: distance threshold for filtering trajec...
[uncategorized] ~369-~369: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ry score matrix. *persistent_tracking
: whether to keep a buffer across chunks ...
[uncategorized] ~370-~370: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...buffer across chunks or not. *max_gap
: the max number of frames a trajectory c...
[uncategorized] ~371-~371: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ssing before termination. *max_tracks
: the maximum number of tracks that can b...
[style] ~436-~436: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...se.yaml#L62-65) This section indicates whether or not to track across chunks during training/...
[uncategorized] ~439-~439: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... during training. During validation and testing it may depend on whether you are testin...
[uncategorized] ~458-~458: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...asets/base_dataset.py) args *padding
: Anint
representing the amount of pad...
[uncategorized] ~460-~460: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...around which a crop will form. *chunk
: Whether or not to chunk videos into sma...
[style] ~460-~460: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...ound which a crop will form. *chunk
: Whether or not to chunk videos into smaller clips to f...
[uncategorized] ~463-~463: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...for training or validation. *n_chunks
: Number of chunks to subsample from. Can...
[uncategorized] ~467-~467: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...tracking challenge datasets. ####dir
: This section allows you to pass a direc...
[uncategorized] ~470-~470: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... to labels/videos individually *path
: The path to the dir where the data is s...
[uncategorized] ~487-~487: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...... ... ... ``` ####augmentations
: This subsection contains params for al...
[uncategorized] ~510-~510: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... all visible anchors. *handle_missing
: how to handle missing single nodes. one...
[typographical] ~512-~512: Consider adding a comma. (IF_THEN_COMMA)
Context: ... missing theanchor
. * ifignore
then we use a mask instead of a crop and nan...
[style] ~513-~513: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Context: ... a crop and nan centroids/bboxes. * ifcentroid
then we default to the pose ...
[typographical] ~513-~513: Consider adding a comma. (IF_THEN_COMMA)
Context: ...an centroids/bboxes. * ifcentroid
then we default to the pose centroid as the ...
[uncategorized] ~611-~611: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... for the dataloaders. For more advanced users see [torch.utils.data.Dataloader
](htt...
[uncategorized] ~629-~629: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... ``` ##logging
: This section sets up logging for the tr...
[grammar] ~648-~648: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ... args. ### Examples: Here we provide a couple examples for different available loggers #### [`...
[uncategorized] ~667-~667: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule-lightning.pytorch.loggers.csv_logs): ```YAML ... logging: save_dir: "./l...
[uncategorized] ~682-~682: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...s early stopping for training runs. > Below we provide descriptions of the argument...
[style] ~682-~682: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Context: ... see `lightning.callbacks.EarlyStopping for available arguments for more fine ...
[misspelling] ~682-~682: This word is normally spelled with a hyphen. (EN_COMPOUNDS_FINE_GRAINED)
Context: ...pping) for available arguments for more fine grained control *monitor
(str
): quantity ...
[uncategorized] ~686-~686: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...ence(
int`): number of checks with no improvement after which training will be stopped. ...
[uncategorized] ~711-~711: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...eckpointing during training *monitor
: A list of metrics to save best models f...
[misspelling] ~715-~715: This word is normally spelled with a hyphen. (EN_COMPOUNDS_FINE_GRAINED)
Context: ...ound useful for checkpointing. For more fine grained control see [`lightning.callbacks.Model...
[uncategorized] ~715-~715: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...or checkpointing. For more fine grained control see [`lightning.callbacks.ModelCheckpoi...
[style] ~715-~715: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Context: ...ting. For more fine grained control seelightning.callbacks.ModelCheckpoint
for available checkpointing params and...
[typographical] ~717-~717: Consider adding a comma. (IF_THEN_COMMA)
Context: ...ectory to save the models. If left empty then we first try to save to `./models/[GROU...
[typographical] ~717-~717: Do not use a colon (:) before a series that is introduced by a preposition (‘to’). Remove the colon or add a noun or a noun phrase after the preposition. (RP_COLON)
Context: ...ogger iswandb
otherwise we just save to./models
*save_last
: (bool
): WhenTrue
, saves a last.ckp...
[style] ~718-~718: To form a complete sentence, be sure to include a subject. (MISSING_IT_THERE)
Context: ... whenever a checkpoint file gets saved. Can be set to 'link' on a local filesystem ...
[misspelling] ~738-~738: This word is normally spelled with a hyphen. (EN_COMPOUNDS_FINE_GRAINED)
Context: ...ch/stable/common/trainer.html) for more fine grained control and how thetrainer
works in ...
[style] ~742-~742: To form a complete sentence, be sure to include a subject. (MISSING_IT_THERE)
Context: ...t]|
str|
int)
The devices to use. Can be set to: * a positive number (`in...
[typographical] ~742-~742: Do not use a colon (:) before a series that is introduced by a preposition (‘to’). Remove the colon or add a noun or a noun phrase after the preposition. (RP_COLON)
Context: ...|int
)The devices to use. Can be set to: * a positive number (
int|
str`)...
[style] ~777-~777: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...a before training *enable
: (bool
) whether or not to view a batch *num_frames
: (int
)...
[style] ~779-~779: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...ch to visualize *no_train
: (bool
) whether or not to train after visualization is complet...
Markdownlint
dreem/inference/configs/README.md
86-86: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
87-87: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
88-88: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
91-91: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
92-92: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
93-93: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
49-49: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
137-137: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
140-140: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
19-19: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
35-35: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
48-48: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
62-62: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
68-68: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
68-68: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
82-82: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
82-82: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
94-94: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
94-94: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
98-98: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
98-98: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
104-104: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
104-104: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
105-105: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
105-105: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
122-122: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
122-122: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
136-136: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
143-143: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
7-7: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
11-11: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
14-14: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
18-18: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
36-36: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
69-69: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
81-81: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
106-106: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
121-121: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
123-123: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
144-144: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
6-6: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
12-12: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
13-13: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
67-67: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
83-83: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
93-93: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
95-95: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
97-97: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
99-99: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
103-103: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
33-33: null (MD038, no-space-in-code)
Spaces inside code span elements
150-150: null (MD047, single-trailing-newline)
Files should end with a single newline characterREADME.md
78-78: Expected: 0; Actual: 1 (MD007, ul-indent)
Unordered list indentation
79-79: Expected: 0; Actual: 1 (MD007, ul-indent)
Unordered list indentation
41-41: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
78-78: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
90-90: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
100-100: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
156-156: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
180-180: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
187-187: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
188-188: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
193-193: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
201-201: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
203-203: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
226-226: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
243-243: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
259-259: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
1-1: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
9-9: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
10-10: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
10-10: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
14-14: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
14-14: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
15-15: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
15-15: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
16-16: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
16-16: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
20-20: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
20-20: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
24-24: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
24-24: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
28-28: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
28-28: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
36-36: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
45-45: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
46-46: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
46-46: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
52-52: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
52-52: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
58-58: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
58-58: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
67-67: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
76-76: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
82-82: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
82-82: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
92-92: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
155-155: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
160-160: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
173-173: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
207-207: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
212-212: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
213-213: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
213-213: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
222-222: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
265-265: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
277-277: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
277-277: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
11-11: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
13-13: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
17-17: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
19-19: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
21-21: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
23-23: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
25-25: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
27-27: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
29-29: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
48-48: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
50-50: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
54-54: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
56-56: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
60-60: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
62-62: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
103-103: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
145-145: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
149-149: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
184-184: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
194-194: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
196-196: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
198-198: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
200-200: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
229-229: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
272-272: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
274-274: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
276-276: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
39-39: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
69-69: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
78-78: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
157-157: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
215-215: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
225-225: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
244-244: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
29-29: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified
103-103: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified
229-229: null (MD040, fenced-code-language)
Fenced code blocks should have a language specifieddreem/training/configs/README.md
506-506: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
507-507: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
508-508: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
511-511: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
512-512: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
513-513: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
743-743: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
744-744: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
745-745: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
746-746: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
37-37: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
62-62: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
137-137: Expected: 0 or 2; Actual: 4 (MD009, no-trailing-spaces)
Trailing spaces
147-147: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
159-159: Expected: 0 or 2; Actual: 3 (MD009, no-trailing-spaces)
Trailing spaces
186-186: Expected: 0 or 2; Actual: 12 (MD009, no-trailing-spaces)
Trailing spaces
278-278: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
315-315: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
319-319: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
327-327: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
454-454: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
610-610: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
613-613: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
630-630: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
637-637: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
677-677: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
680-680: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
686-686: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
717-717: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
737-737: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
743-743: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
744-744: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
746-746: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
796-796: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
804-804: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines
805-805: Expected: 1; Actual: 3 (MD012, no-multiple-blanks)
Multiple consecutive blank lines
37-37: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
47-47: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
47-47: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
51-51: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
51-51: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
54-54: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
77-77: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
78-78: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
78-78: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
99-99: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
99-99: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
115-115: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
120-120: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
120-120: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
122-122: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
122-122: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
125-125: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
125-125: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
126-126: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
126-126: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
138-138: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
138-138: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
160-160: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
198-198: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
199-199: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
199-199: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
213-213: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
213-213: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
227-227: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
227-227: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
257-257: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
265-265: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
274-274: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
288-288: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
290-290: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
290-290: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
302-302: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
302-302: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
315-315: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
330-330: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
333-333: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
346-346: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
346-346: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
358-358: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
374-374: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
387-387: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
397-397: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
398-398: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
398-398: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
410-410: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
410-410: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
422-422: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
422-422: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
434-434: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
441-441: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
467-467: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
473-473: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
473-473: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
487-487: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
491-491: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
502-502: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
502-502: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
514-514: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
514-514: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
518-518: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
518-518: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
524-524: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
524-524: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
525-525: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
525-525: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
569-569: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
569-569: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
608-608: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
616-616: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
629-629: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
647-647: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
649-649: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
649-649: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
667-667: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
678-678: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
692-692: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
722-722: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
759-759: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
781-781: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
782-782: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
782-782: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
789-789: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
789-789: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
796-796: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
796-796: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
6-6: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
11-11: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
13-13: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
63-63: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
79-79: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
98-98: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
100-100: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
114-114: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
127-127: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
137-137: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
139-139: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
147-147: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
149-149: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
159-159: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
200-200: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
212-212: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
214-214: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
226-226: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
229-229: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
256-256: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
266-266: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
273-273: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
291-291: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
301-301: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
303-303: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
314-314: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
334-334: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
345-345: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
347-347: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
357-357: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
375-375: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
386-386: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
399-399: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
409-409: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
411-411: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
421-421: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
423-423: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
433-433: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
442-442: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
474-474: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
486-486: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
492-492: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
501-501: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
526-526: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
568-568: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
570-570: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
607-607: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
617-617: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
650-650: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
668-668: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
677-677: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
693-693: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
723-723: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
760-760: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
783-783: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
788-788: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
790-790: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
795-795: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
797-797: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
36-36: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
46-46: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
48-48: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
50-50: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
52-52: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
53-53: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
119-119: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
121-121: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
121-121: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
123-123: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
124-124: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
472-472: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
503-503: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
513-513: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
515-515: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
517-517: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
519-519: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
523-523: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
738-738: null (MD034, no-bare-urls)
Bare URL used
372-372: null (MD038, no-space-in-code)
Spaces inside code span elements
643-643: null (MD038, no-space-in-code)
Spaces inside code span elements
Ruff
dreem/datasets/sleap_dataset.py
9-9:
warnings
imported but unused (F401)
Additional comments not posted (6)
git (1)
1-8
: The file correctly lists all the new files added under thebiogtr/io
directory.dreem/inference/configs/README.md (1)
1-150
: The documentation is comprehensive and well-structured, providing detailed descriptions of various configuration parameters.Tools
LanguageTool
[uncategorized] ~5-~5: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...nce. *ckpt_path
: Astr
containing the path to the save...
[uncategorized] ~12-~12: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...... ``` *out_dir
: A `str` containing a directory path whe...
[uncategorized] ~23-~23: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...configures the tracker. *window_size
: the size of the window used during slid...
[uncategorized] ~24-~24: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ing sliding inference. *use_vis_feats
: Whether or not to use visual feature ex...
[style] ~24-~24: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...g sliding inference. *use_vis_feats
: Whether or not to use visual feature extractor. * `ove...
[uncategorized] ~25-~25: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...al feature extractor. *overlap_thresh
: the trajectory overlap threshold to be ...
[uncategorized] ~26-~26: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... be used for assignment. *mult_thresh
: Whether or not to use weight threshold....
[style] ~26-~26: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...e used for assignment. *mult_thresh
: Whether or not to use weight threshold. *decay_time
...
[uncategorized] ~27-~27: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... to use weight threshold. *decay_time
: weight fordecay_time
postprocessing....
[uncategorized] ~28-~28: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...fordecay_time
postprocessing. *iou
: Either{None, '', "mult" or "max"}
. W...
[uncategorized] ~29-~29: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...max iou reweighting. *max_center_dist
: distance threshold for filtering trajec...
[uncategorized] ~30-~30: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ry score matrix. *persistent_tracking
: whether to keep a buffer across chunks ...
[uncategorized] ~31-~31: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...buffer across chunks or not. *max_gap
: the max number of frames a trajectory c...
[uncategorized] ~32-~32: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ssing before termination. *max_tracks
: the maximum number of tracks that can b...
[uncategorized] ~48-~48: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...## [
dataset`](inference.yaml#L10-16): This section contains the params for in...
[uncategorized] ~53-~53: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...asets/base_dataset.py) args *padding
: Anint
representing the amount of pad...
[uncategorized] ~55-~55: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...around which a crop will form. *chunk
: Whether or not to chunk videos into sma...
[style] ~55-~55: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...ound which a crop will form. *chunk
: Whether or not to chunk videos into smaller clips to f...
[uncategorized] ~58-~58: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...for training or validation. *n_chunks
: Number of chunks to subsample from. Can...
[uncategorized] ~62-~62: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...tracking challenge datasets. ####dir
: This section allows you to pass a direc...
[uncategorized] ~65-~65: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... to labels/videos individually *path
: The path to the dir where the data is s...
[uncategorized] ~90-~90: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... all visible anchors. *handle_missing
: how to handle missing single nodes. one...
[typographical] ~92-~92: Consider adding a comma. (IF_THEN_COMMA)
Context: ... missing theanchor
. * ifignore
then we use a mask instead of a crop and nan...
[style] ~93-~93: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Context: ... a crop and nan centroids/bboxes. * ifcentroid
then we default to the pose ...
[typographical] ~93-~93: Consider adding a comma. (IF_THEN_COMMA)
Context: ...an centroids/bboxes. * ifcentroid
then we default to the pose centroid as the ...Markdownlint
86-86: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
87-87: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
88-88: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
91-91: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
92-92: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
93-93: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
49-49: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
137-137: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
140-140: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
19-19: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
35-35: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
48-48: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
62-62: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
68-68: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
68-68: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
82-82: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
82-82: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
94-94: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
94-94: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
98-98: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
98-98: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
104-104: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
104-104: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
105-105: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
105-105: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
122-122: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
122-122: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
136-136: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
143-143: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
7-7: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
11-11: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
14-14: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
18-18: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
36-36: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
69-69: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
81-81: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
106-106: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
121-121: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
123-123: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
144-144: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
6-6: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
12-12: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
13-13: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
67-67: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
83-83: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
93-93: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
95-95: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
97-97: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
99-99: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
103-103: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
33-33: null (MD038, no-space-in-code)
Spaces inside code span elements
150-150: null (MD047, single-trailing-newline)
Files should end with a single newline characterdreem/inference/track_queue.py (1)
Line range hint
17-46
: The type annotations added to the methods enhance clarity and type safety. Good job on maintaining clean and understandable code.dreem/datasets/sleap_dataset.py (1)
127-135
: The update to return a list ofFrame
objects instead of dictionaries in theget_instances
method aligns with the objective to improve data handling and consistency.README.md (1)
244-244
: Correct article usage.- a `ckpt_path` + an `ckpt_path`Likely invalid or redundant comment.
Tools
LanguageTool
[misspelling] ~244-~244: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...set up a config file that specifies 1. ackpt_path
2. aout_dir
3. a `Tracke...Markdownlint
244-244: null (MD032, blanks-around-lists)
Lists should be surrounded by blank linesdreem/training/configs/README.md (1)
742-742
: Clarify the conditional statement by adding a comma after "Can be set to".- Can be set to: + Can be set to,Likely invalid or redundant comment.
Tools
LanguageTool
[style] ~742-~742: To form a complete sentence, be sure to include a subject. (MISSING_IT_THERE)
Context: ...t]|
str|
int)
The devices to use. Can be set to: * a positive number (`in...
[typographical] ~742-~742: Do not use a colon (:) before a series that is introduced by a preposition (‘to’). Remove the colon or add a noun or a noun phrase after the preposition. (RP_COLON)
Context: ...|int
)The devices to use. Can be set to: * a positive number (
int|
str`)...
|
||
### Training | ||
|
||
#### Step 1: Generate Ground Truth Data |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Simplify language to enhance clarity.
- In order to train a model you need 2 things.
+ To train a model, you need 2 things.
Committable suggestion was skipped due to low confidence.
Tools
LanguageTool
[style] ~67-~67: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...#### Step 1: Generate Ground Truth Data In order to train a model you need 2 things. 1. A v...
Markdownlint
67-67: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
2. [`pytorch`](https://pytorch.org) for model construction | ||
3. [`pytorch-lightning`](https://lightning.ai) for high-level training/eval/inference handling. | ||
|
||
Thus, we recommend skimming through their respective docs to get some familiarity but is not necessary. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider adding a comma for clarity.
- Thus, we recommend skimming through their respective docs to get some familiarity but is not necessary.
+ Thus, we recommend skimming through their respective docs to get some familiarity, but it is not necessary.
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.
Thus, we recommend skimming through their respective docs to get some familiarity but is not necessary. | |
Thus, we recommend skimming through their respective docs to get some familiarity, but it is not necessary. |
Tools
LanguageTool
[uncategorized] ~43-~43: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... respective docs to get some familiarity but is not necessary. ### Setup #### Step ...
2. A video. | ||
- For animal data see the [`imageio`](https://imageio.readthedocs.io/en/v2.4.1/formats.html) docs for supported file types. | ||
- For microscopy data we currently support `.tif` files. Video formats supported by `imageio` coming soon. | ||
3. A labels file. This labels file is slightly different than in training because we only need detections for tracking since the tracks will of course come from our model predictions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct grammatical errors.
- This labels file is slightly different than in training because we only need detections for tracking since the tracks will of course come from our model predictions.
+ This labels file is slightly different from training because we only need detections for tracking, as the tracks will, of course, come from our model predictions.
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.
3. A labels file. This labels file is slightly different than in training because we only need detections for tracking since the tracks will of course come from our model predictions. | |
3. A labels file. This labels file is slightly different from training because we only need detections for tracking, as the tracks will, of course, come from our model predictions. |
Tools
LanguageTool
[style] ~219-~219: Did you mean ‘different from’? ‘Different than’ is often considered colloquial style. (DIFFERENT_THAN)
Context: ... This labels file is slightly different than in training because we only need detect...
[typographical] ~219-~219: Consider adding two commas here. (OF_COURSE_COMMA)
Context: ...tions for tracking since the tracks will of course come from our model predictions. We st...
|
||
This is because these methods will handle both the detection and tracking steps together. Furthermore, these are currently the two main label formats we support in our data pipelines for arbitrary [animal](biogtr/datasets/sleap_dataset.py) and [microscopy](biogtr/datasets/microscopy_dataset.py) datasets. If you'd like to use a different method, (e.g DeepLabCut or ilastik etc), the easiest way to make your data compatible with `biogtr` is to convert your labels to a `.slp` file and your video to an [`imageio`-supported]((https://imageio.readthedocs.io/en/v2.4.1/formats.html)) video format. See the next section for more information on how to do this. Alternatively, you can write a custom dataloader but that will take significantly more overhead. | ||
##### Step 1.2 Proofreading | ||
Once you have your labels file containing the detections and tracks, you'll want to make sure to proofread your labels. This is because object-tracking is hard and the methods we recommend above may have made mistakes. The most important thing to train a good model is to have high quality data. In our case good quality means two things: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Improve sentence structure for clarity.
- In our case good quality means two things:
+ In our case, good quality means two things:
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.
Once you have your labels file containing the detections and tracks, you'll want to make sure to proofread your labels. This is because object-tracking is hard and the methods we recommend above may have made mistakes. The most important thing to train a good model is to have high quality data. In our case good quality means two things: | |
Once you have your labels file containing the detections and tracks, you'll want to make sure to proofread your labels. This is because object-tracking is hard and the methods we recommend above may have made mistakes. The most important thing to train a good model is to have high quality data. In our case, good quality means two things: |
Tools
LanguageTool
[uncategorized] ~83-~83: If this is a compound adjective that modifies the following noun, use a hyphen. (EN_COMPOUND_ADJECTIVE_INTERNAL)
Context: ... thing to train a good model is to have high quality data. In our case good quality means tw...
[typographical] ~83-~83: At the start of a sentence, a comma is usually required for the expression ‘In “our case,”’. (COMMA_OF_IN_PRPS_CASE)
Context: ... model is to have high quality data. In our case good quality means two things: 1. No i...
|
||
We recommend using the [`sleap-label` gui](https://sleap.ai/guides/gui.html) for [proofreading](https://sleap.ai/guides/proofreading.html#id1). This is because SLEAP's in-built gui provides useful. functionality for visualizing detections, moving them, and reassigning tracks. It also provides some nice heuristics for flagging where switches may have occured. | ||
|
||
###### Converting data to a SLEAP compatible format. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Simplify language to enhance clarity.
- In order to use the SLEAP gui you'll need to have your labels and videos in a SLEAP compatible format.
+ To use the SLEAP gui, you'll need to have your labels and videos in a SLEAP compatible format.
Committable suggestion was skipped due to low confidence.
Tools
LanguageTool
[style] ~92-~92: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...ting data to a SLEAP compatible format. In order to use the SLEAP gui you'll need to have y...
Markdownlint
92-92: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
|
||
Although, our data loading does take paths to label files and video files directly so it's fairly flexible, we recommend organizing your data with a couple things in mind. | ||
|
||
1. Match video and labels file stems. Because our dataloaders just take in a list of video files and a list of corresponding label files, the order in which the corresponding files are passed must match. (e.g `[file1.slp, file2.slp], [vid1.mp4, vid2.mp4]`). In order to make programmatic file searching easy its best to save your labels and vid files with the same stem so that you can ensure the ordering will be consistent. Its also just best practice so you know which video a labels file corresponds to. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct grammatical errors and enhance clarity.
- Its also just best practice so you know which video a labels file corresponds to.
+ It's also just best practice so you know which video a label file corresponds to.
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.
1. Match video and labels file stems. Because our dataloaders just take in a list of video files and a list of corresponding label files, the order in which the corresponding files are passed must match. (e.g `[file1.slp, file2.slp], [vid1.mp4, vid2.mp4]`). In order to make programmatic file searching easy its best to save your labels and vid files with the same stem so that you can ensure the ordering will be consistent. Its also just best practice so you know which video a labels file corresponds to. | |
1. Match video and labels file stems. Because our dataloaders just take in a list of video files and a list of corresponding label files, the order in which the corresponding files are passed must match. (e.g `[file1.slp, file2.slp], [vid1.mp4, vid2.mp4]`). In order to make programmatic file searching easy its best to save your labels and vid files with the same stem so that you can ensure the ordering will be consistent. It's also just best practice so you know which video a label file corresponds to. |
Tools
LanguageTool
[uncategorized] ~99-~99: The grammatical number of this noun doesn’t look right. Consider replacing it. (AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)
Context: ...ple things in mind. 1. Match video and labels file stems. Because our dataloaders jus...
[style] ~99-~99: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...lp, file2.slp], [vid1.mp4, vid2.mp4]`). In order to make programmatic file searching easy i...
[uncategorized] ~99-~99: A comma might be missing here. (AI_EN_LECTOR_MISSING_PUNCTUATION_COMMA)
Context: ...der to make programmatic file searching easy its best to save your labels and vid fi...
[uncategorized] ~99-~99: “its” (belonging to it) seems less likely than “it’s” (it is) (AI_HYDRA_LEO_CPT_ITS_ITIS)
Context: ...o make programmatic file searching easy its best to save your labels and vid files ...
[style] ~99-~99: ‘vid’ is informal. Consider replacing it. (VID)
Context: ...g easy its best to save your labels and vid files with the same stem so that you ca...
[uncategorized] ~99-~99: “its” (belonging to it) seems less likely than “it’s” (it is) (AI_HYDRA_LEO_CPT_ITS_ITIS)
Context: ...ensure the ordering will be consistent. Its also just best practice so you know whi...
[uncategorized] ~99-~99: It seems likely that a singular genitive (’s) apostrophe is missing. (AI_HYDRA_LEO_APOSTROPHE_S_XS)
Context: ...best practice so you know which video a labels file corresponds to. 2. Store correspon...
|
||
#### Step 1. Setup Data | ||
##### Step 1.1 Get detections | ||
One of the main advantages of this system is that we *decouple* detection and tracking so you can use off-the-shelf high performant detectors/pose-estimators/segementors. This means that in order to run inference(tracking) with our model you need 3 things. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Simplify language to enhance clarity.
- This means that in order to run inference(tracking) with our model you need 3 things.
+ This means that to run inference (tracking) with our model, you need 3 things.
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.
One of the main advantages of this system is that we *decouple* detection and tracking so you can use off-the-shelf high performant detectors/pose-estimators/segementors. This means that in order to run inference(tracking) with our model you need 3 things. | |
One of the main advantages of this system is that we *decouple* detection and tracking so you can use off-the-shelf high performant detectors/pose-estimators/segementors. This means that to run inference (tracking) with our model, you need 3 things. |
Tools
LanguageTool
[uncategorized] ~214-~214: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...tem is that we decouple detection and tracking so you can use off-the-shelf high perfo...
[style] ~214-~214: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...estimators/segementors. This means that in order to run inference(tracking) with our model ...
[uncategorized] ~214-~214: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...der to run inference(tracking) with our model you need 3 things. 1. A pretrained mode...
2. Ground truth identities (also called tracks, or trajectories). These are temporally consistent labels that group detections through time. | ||
|
||
##### Step 1.1: Get Initial labels | ||
To generate your initial labels we recommend a couple methods. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct informal language.
- To generate your initial labels we recommend a couple methods.
+ To generate your initial labels, we recommend a couple of methods.
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.
To generate your initial labels we recommend a couple methods. | |
To generate your initial labels, we recommend a couple of methods. |
Tools
LanguageTool
[grammar] ~77-~77: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...rate your initial labels we recommend a couple methods. - For animal pose-estimation, we high...
README.md
Outdated
- For animal pose-estimation, we highly recommend heading over to [SLEAP](https://sleap.ai) and running through their work flow. | ||
- For microscopy tracking, check out [TrackMate](https://imagej.net/plugins/trackmate/). | ||
|
||
This is because these methods will handle both the detection and tracking steps together. Furthermore, these are currently the two main label formats we support in our data pipelines for arbitrary [animal](biogtr/datasets/sleap_dataset.py) and [microscopy](biogtr/datasets/microscopy_dataset.py) datasets. If you'd like to use a different method, (e.g DeepLabCut or ilastik etc), the easiest way to make your data compatible with `biogtr` is to convert your labels to a `.slp` file and your video to an [`imageio`-supported]((https://imageio.readthedocs.io/en/v2.4.1/formats.html)) video format. See the next section for more information on how to do this. Alternatively, you can write a custom dataloader but that will take significantly more overhead. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct abbreviation and punctuation.
- (e.g DeepLabCut or ilastik etc), the easiest way to make your data compatible
+ (e.g., DeepLabCut or ilastik, etc.), the easiest way to make your data compatible
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.
This is because these methods will handle both the detection and tracking steps together. Furthermore, these are currently the two main label formats we support in our data pipelines for arbitrary [animal](biogtr/datasets/sleap_dataset.py) and [microscopy](biogtr/datasets/microscopy_dataset.py) datasets. If you'd like to use a different method, (e.g DeepLabCut or ilastik etc), the easiest way to make your data compatible with `biogtr` is to convert your labels to a `.slp` file and your video to an [`imageio`-supported]((https://imageio.readthedocs.io/en/v2.4.1/formats.html)) video format. See the next section for more information on how to do this. Alternatively, you can write a custom dataloader but that will take significantly more overhead. | |
This is because these methods will handle both the detection and tracking steps together. Furthermore, these are currently the two main label formats we support in our data pipelines for arbitrary [animal](biogtr/datasets/sleap_dataset.py) and [microscopy](biogtr/datasets/microscopy_dataset.py) datasets. If you'd like to use a different method, (e.g., DeepLabCut or ilastik, etc.), the easiest way to make your data compatible with `biogtr` is to convert your labels to a `.slp` file and your video to an [`imageio`-supported]((https://imageio.readthedocs.io/en/v2.4.1/formats.html)) video format. See the next section for more information on how to do this. Alternatively, you can write a custom dataloader but that will take significantly more overhead. |
Tools
LanguageTool
[uncategorized] ~81-~81: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ... you'd like to use a different method, (e.g DeepLabCut or ilastik etc), the easiest...
[style] ~81-~81: In American English, abbreviations like “etc.” require a period. (ETC_PERIOD)
Context: ...rent method, (e.g DeepLabCut or ilastik etc), the easiest way to make your data com...
[uncategorized] ~81-~81: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE_2)
Context: ...ively, you can write a custom dataloader but that will take significantly more overh...
README.md
Outdated
|
||
##### Step 2.1. Setup Config: | ||
|
||
The input into our training script is a `.yaml` file that contains all the parameters needed for training. Please checkout the [`README`](biogtr/training/configs/README.md) in `biogtr/training/configs` for a detailed description of all the parameters and how to set up the config. We also provide an example config in [`biogtr/training/configs/base.yaml`](biogtr/training/configs/base.yaml) to give you an idea for how the config should look. In general, the best practice is to keep a single `base.yaml` file which has all the default arguments you'd like to use. Then you can have a second `.yaml` file which will override only those specific set of parameters when training (for an example see [`biogtr/training/configs/params.yaml`](biogtr/training/configs/params.yaml)). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct spelling and punctuation.
- Please checkout the [`README`](biogtr/training/configs/README.md)
+ Please check out the [`README`](biogtr/training/configs/README.md)
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.
The input into our training script is a `.yaml` file that contains all the parameters needed for training. Please checkout the [`README`](biogtr/training/configs/README.md) in `biogtr/training/configs` for a detailed description of all the parameters and how to set up the config. We also provide an example config in [`biogtr/training/configs/base.yaml`](biogtr/training/configs/base.yaml) to give you an idea for how the config should look. In general, the best practice is to keep a single `base.yaml` file which has all the default arguments you'd like to use. Then you can have a second `.yaml` file which will override only those specific set of parameters when training (for an example see [`biogtr/training/configs/params.yaml`](biogtr/training/configs/params.yaml)). | |
The input into our training script is a `.yaml` file that contains all the parameters needed for training. Please check out the [`README`](biogtr/training/configs/README.md) in `biogtr/training/configs` for a detailed description of all the parameters and how to set up the config. We also provide an example config in [`biogtr/training/configs/base.yaml`](biogtr/training/configs/base.yaml) to give you an idea for how the config should look. In general, the best practice is to keep a single `base.yaml` file which has all the default arguments you'd like to use. Then you can have a second `.yaml` file which will override only those specific set of parameters when training (for an example see [`biogtr/training/configs/params.yaml`](biogtr/training/configs/params.yaml)). |
Tools
LanguageTool
[grammar] ~137-~137: The word “checkout” is a noun. The verb is spelled with a space. (NOUN_VERB_CONFUSION)
Context: ... parameters needed for training. Please checkout the [README
](biogtr/training/configs/...
[uncategorized] ~137-~137: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...set of parameters when training (for an example see [`biogtr/training/configs/params.ya...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 59
Outside diff range and nitpick comments (51)
docs/io/frame.md (1)
2-2
: Ensure the file ends with a single newline character.Please add a newline at the end of the file to comply with Markdown best practices.
Tools
Markdownlint
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/io/track.md (1)
2-2
: Ensure the file ends with a single newline character.Please add a newline at the end of the file to comply with Markdown best practices.
Tools
Markdownlint
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/io/config.md (1)
2-2
: Ensure the file ends with a single newline character.Please add a newline at the end of the file to comply with Markdown best practices.
Tools
Markdownlint
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/io/instance.md (1)
2-2
: Ensure the file ends with a single newline character.Please add a newline at the end of the file to comply with Markdown best practices.
Tools
Markdownlint
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/configs/config.md (1)
2-2
: Ensure the file ends with a single newline character.Tools
Markdownlint
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/io/visualize.md (1)
2-2
: Ensure the file ends with a single newline character.Tools
Markdownlint
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/models/gtr_runner.md (1)
2-2
: Ensure the file ends with a single newline character.Tools
Markdownlint
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/io/asso_matrix.md (1)
2-2
: Ensure the file ends with a single newline character.Tools
Markdownlint
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/io/index.md (1)
7-7
: Remove trailing spaces to adhere to Markdown best practices.Tools
Markdownlint
7-7: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spacesdocs/models/index.md (1)
17-17
: Ensure the file ends with a single newline character.Tools
Markdownlint
17-17: null (MD047, single-trailing-newline)
Files should end with a single newline characterdreem/io/track.py (1)
Line range hint
17-17
: Resolve undefined names by importing necessary modules.+ from dreem.io.instance import Instance + from dreem.io.frame import FrameAlso applies to: 46-46, 64-64, 82-82
Tools
Ruff
82-82: Undefined name
Instance
(F821)
82-82: Undefined name
Instance
(F821)dreem/inference/track.py (3)
Line range hint
35-35
: Rename unused loop variable to underscore prefix to indicate it's intentionally unused.- for i, instance in enumerate(frame.instances): + for _i, instance in enumerate(frame.instances):Tools
Ruff
18-18: Undefined name
dreem
(F821)
Line range hint
102-102
: Usekey in dict
instead ofkey in dict.keys()
for checking key existence.- if "checkpoints" in cfg.keys(): + if "checkpoints" in cfg:Tools
Ruff
18-18: Undefined name
dreem
(F821)
Line range hint
120-120
: Remove extraneousf
prefix from the string as it does not contain placeholders.- print(f"Saving {preds} to {outpath}") + print("Saving to", outpath)Tools
Ruff
18-18: Undefined name
dreem
(F821)dreem/models/global_tracking_transformer.py (1)
Line range hint
81-82
: Undefined namesInstance
andAssociationMatrix
could cause runtime errors. Ensure these are properly imported or defined.dreem/datasets/microscopy_dataset.py (1)
Line range hint
86-86
: Replace the lambda expression with adef
for better readability and maintainability.- parser = lambda x: data_utils.parse_synthetic(x, source=source) + def parser(x): + return data_utils.parse_synthetic(x, source=source)dreem/models/model_utils.py (3)
Line range hint
3-3
: Remove the unused import and correct the undefined name.- from typing import List, Tuple, Iterable + from typing import List, Iterable - def get_boxes(instances: List["dreem.io.Instance"]) -> torch.Tensor: + def get_boxes(instances: List[Instance]) -> torch.Tensor:Also applies to: 8-8
Tools
Ruff
8-8: Undefined name
dreem
(F821)
Line range hint
19-19
: Rename the unused loop variable to_
.- for i, instance in enumerate(instances): + for _, instance in enumerate(instances):Tools
Ruff
8-8: Undefined name
dreem
(F821)
Line range hint
32-32
: Correct the undefined names by importing the necessary classes.+ from dreem.io import Instance
Also applies to: 33-33
Tools
Ruff
8-8: Undefined name
dreem
(F821)dreem/inference/boxes.py (1)
Line range hint
129-129
: Use f-string for better performance and readability.- assert (b.dim() == 3), "Indexing on Boxes with {} failed to return a matrix!".format(item) + assert (b.dim() == 3), f"Indexing on Boxes with {item} failed to return a matrix!"dreem/datasets/cell_tracking_dataset.py (1)
Line range hint
133-136
: Use a ternary operator for simplicity and improved readability.- if self.gt_list is not None: - gt_list = self.gt_list[label_idx] - else: - gt_list = None + gt_list = self.gt_list[label_idx] if self.gt_list is not None else Nonedocs/configs/inference.md (2)
24-26
: Consider simplifying the phrase "Whether or not" to "Whether" for conciseness.Tools
LanguageTool
[style] ~24-~24: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ... inference. *use_vis_feats
: (bool
) Whether or not to use visual feature extractor. * `ove...
[style] ~26-~26: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...r assignment. *mult_thresh
: (bool
) Whether or not to use weight threshold. *decay_time
...
[uncategorized] ~26-~26: You might be missing the article “a” here. (AI_EN_LECTOR_MISSING_DETERMINER_A)
Context: ...thresh: (
bool) Whether or not to use weight threshold. *
decay_time: (
float`) we...
67-67
: Consider adding a comma after "e.g" for grammatical correctness.Tools
LanguageTool
[uncategorized] ~67-~67: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... the file extension to search for video files e.g.mp4
,.avi
or.tif
. ##### Exa...Markdownlint
67-67: null (MD032, blanks-around-lists)
Lists should be surrounded by blank linesdreem/inference/metrics.py (3)
Line range hint
13-13
: Undefined name 'dreem' suggests a missing import or incorrect module reference.Consider adding the appropriate import statement or correcting the module path.
Line range hint
139-139
: The loop control variablefidx
is not used within the loop body.- for fidx, frame in enumerate(frames): + for _fidx, frame in enumerate(frames):
Line range hint
232-232
: The loop control variablemetric_name
is not used within the loop body.- for metric_name, metric in metrics.items(): + for _metric_name, metric in metrics.items():dreem/inference/track_queue.py (2)
Line range hint
195-198
: Use a ternary operator for concise code when determiningvid_name
.- if isinstance(frame.video, str): - vid_name = frame.video - else: - vid_name = frame.video.filename + vid_name = frame.video if isinstance(frame.video, str) else frame.video.filename
Line range hint
207-207
: Usekey not in dict
instead ofkey not in dict.keys()
for more idiomatic Python.- if track not in self._curr_gap.keys(): + if track not in self._curr_gap:Also applies to: 251-251
dreem/io/visualize.py (1)
Line range hint
282-282
: The loop control variableidx
is not used within the loop body.- for idx, (ds_name, data) in enumerate([(save_path, annotated_frames)]): + for _idx, (ds_name, data) in enumerate([(save_path, annotated_frames)]):dreem/datasets/sleap_dataset.py (1)
119-119
: Clarify the documentation forget_indices
.The method description could be more detailed, explaining what the label and frame indices represent and how they are used.
dreem/io/config.py (2)
Line range hint
82-82
: Add missing imports forGlobalTrackingTransformer
.The class
GlobalTrackingTransformer
is used but not imported in this file, which could lead to runtime errors.
Line range hint
397-401
: Simplify the initialization oftrainer_params
.Use a ternary operator to make the code more concise and readable.
- if "trainer" in self.cfg: - trainer_params = self.cfg.trainer - else: - trainer_params = {} + trainer_params = self.cfg.trainer if "trainer" in self.cfg else {}dreem/datasets/data_utils.py (1)
Line range hint
267-267
: Use a context manager for file operations inparse_trackmate
.Using a context manager ensures that files are properly closed after operations, which can prevent resource leaks.
dreem/io/frame.py (3)
Line range hint
57-57
: Undefined name 'Instance' in the class definition.The class
Instance
is referenced in the class definition but it is not imported or defined within this file. This will cause a runtime error. You should ensure thatInstance
is properly imported from its respective module.
Line range hint
58-58
: Undefined name 'AssociationMatrix' in the class definition.The class
AssociationMatrix
is used but not defined or imported in this file. This will lead to a runtime error. Please importAssociationMatrix
from its respective module to resolve this issue.
Line range hint
553-553
: Usekey in dict
instead ofkey in dict.keys()
.Using
key in dict
is more Pythonic and slightly more efficient thankey in dict.keys()
. Here's how you can refactor the code:- anchor for instance in self.instances for anchor in instance.centroid.keys() + anchor for instance in self.instances for anchor in instance.centroiddreem/inference/tracker.py (5)
46-46
: Clarify the comment regardingmax_tracks
.The comment on line 46 is somewhat unclear. Consider rephrasing for better clarity, perhaps: "If
max_tracks
is reached, the tracker will assign instances to existing tracks instead of creating new ones."
Line range hint
124-124
: Remove unnecessaryf
prefix and addstacklevel
to warnings.The
f
prefix is used without placeholders, andstacklevel
is missing in warning calls, which could lead to confusion about the origin of the warning.- warnings.warn(f"Clearing Queue after tracking") + warnings.warn("Clearing Queue after tracking", stacklevel=2) - warnings.warn(f"New Video! Resetting Track Queue.") + warnings.warn("New Video! Resetting Track Queue.", stacklevel=2) - warnings.warn(f"Initializing track on clip ind {batch_idx} frame {frame_to_track.frame_id.item()}") + warnings.warn(f"Initializing track on clip ind {batch_idx} frame {frame_to_track.frame_id.item()}", stacklevel=2) - warnings.warn(f"Current number of tracks is {self.track_queue.n_tracks}") + warnings.warn(f"Current number of tracks is {self.track_queue.n_tracks}", stacklevel=2)Also applies to: 152-152, 160-160, 169-169
Line range hint
174-174
: Rename unused loop variables.The loop variables
i
are not used within their respective loops. Consider renaming them to_
to indicate that they are unused.- for i, instance in enumerate(frames[batch_idx].instances): + for _, instance in enumerate(frames[batch_idx].instances): - for i, instance in enumerate(frames[batch_idx].instances): + for _, instance in enumerate(frames[batch_idx].instances):Also applies to: 178-178
Line range hint
180-180
: Correct the use of an undefined variablecurr_track
.The variable
curr_track
is used but not defined in the scope, leading to potential runtime errors.- curr_track += 1 + self.track_queue.curr_track += 1
Line range hint
455-455
: Remove unnecessary parentheses.The parentheses around the expression are extraneous and can be removed for cleaner code.
- raise (e) + raise edreem/models/transformer.py (2)
63-69
: Clarify the documentation forembedding_meta
.The documentation for
embedding_meta
is a bit unclear. Consider rephrasing for better clarity, especially around the structure and expected values of the dictionary. This will help developers understand how to use this feature more effectively.
Line range hint
144-145
: Resolve undefined references todreem
.The references to
dreem.io.Instance
in theforward
method are undefined. This might be due to a missing import or incorrect namespace usage. Ensure thatInstance
is correctly imported fromdreem.io
.dreem/io/instance.py (5)
Line range hint
93-93
: Undefined name 'Frame' detected.The
Frame
class is referenced but not defined or imported in this file. Ensure that it is properly imported to avoid runtime errors.+ from some_module import Frame
Line range hint
212-212
: Avoid using mutable default arguments.Using mutable default arguments like lists can lead to unexpected behavior because they are initialized only once. Use
None
as a default and initialize within the function.- crop: ArrayLike = None, + crop: Optional[ArrayLike] = None,In the method body:
if crop is None: crop = []
Line range hint
243-243
: Improve exception handling by using 'raise ... from'.When re-raising exceptions, it's best to use
raise ... from
to provide context and differentiate between the original and new exceptions.- raise RuntimeError(f"Failed to convert to sio.PredictedInstance: {e}") + raise RuntimeError(f"Failed to convert to sio.PredictedInstance: {e}") from e
Line range hint
290-293
: Simplify boolean expressions.Directly return the condition instead of using an if-else structure. This simplifies the code and improves readability.
- if self._gt_track_id.shape[0] == 0: - return False - else: - return True + return self._gt_track_id.shape[0] != 0Apply similar changes to
has_pred_track_id
,has_bbox
,has_crop
, andhas_features
.Also applies to: 322-325, 362-365, 432-435, 470-473
Line range hint
520-520
: Undefined name 'Frame' detected.The
Frame
class is referenced but not defined or imported in this file. Ensure that it is properly imported to avoid runtime errors.+ from some_module import Frame
Also applies to: 529-529
docs/configs/training.md (3)
5-18
: Clarify the use ofnull
in YAML configurations.The documentation provides an example of using
null
to set a value toNone
. It might be helpful to explicitly state that this is specific to the YAML configuration and how it translates into the application's behavior, ensuring clarity for users unfamiliar with YAML nuances.Tools
LanguageTool
[uncategorized] ~5-~5: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...llwill initialize the value to
None` e.g > ```YAML > model: > d_model: #defaul...Markdownlint
6-6: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
11-11: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
13-13: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
22-36
: Ensure consistency in documentation style.The descriptions of parameters within the
model
section vary in detail and style. For instance, some parameters have a detailed explanation while others do not. Standardizing the detail level could improve the readability and usefulness of the documentation.Tools
LanguageTool
[style] ~31-~31: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: .... *return_intermediate_dec
: (bool
) whether or not to return the output from the intermedi...
[style] ~32-~32: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...iate decoder layers. *norm
: (bool
) whether or not to normalize output of encoder and deco...
[uncategorized] ~33-~33: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...er and decoder. *num_layers_attn_head
: Anint
The number of layers in the [`...Markdownlint
36-36: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
317-329
: Enhance scheduler configuration examples.The examples provided for scheduler configurations are helpful, but adding a few more complex scenarios could demonstrate the flexibility and power of the scheduler settings more effectively. Consider scenarios where adjusting the learning rate based on specific performance metrics could be beneficial.
Tools
LanguageTool
[typographical] ~322-~322: Consider adding a comma here. (PLEASE_COMMA)
Context: ... is our default. For more advanced users please see the respective pytorch documentatio...Markdownlint
319-319: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
327-327: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files ignored due to path filters (2)
docs/assets/favicon.ico
is excluded by!**/*.ico
docs/assets/sleap-logo.png
is excluded by!**/*.png
Files selected for processing (46)
- .gitignore (1 hunks)
- README.md (2 hunks)
- docs/configs/config.md (1 hunks)
- docs/configs/index.md (1 hunks)
- docs/configs/inference.md (1 hunks)
- docs/configs/training.md (1 hunks)
- docs/css/mkdocstrings.css (1 hunks)
- docs/index.md (1 hunks)
- docs/io/asso_matrix.md (1 hunks)
- docs/io/config.md (1 hunks)
- docs/io/frame.md (1 hunks)
- docs/io/index.md (1 hunks)
- docs/io/instance.md (1 hunks)
- docs/io/track.md (1 hunks)
- docs/io/visualize.md (1 hunks)
- docs/models/global_tracking_transformer.md (1 hunks)
- docs/models/gtr_runner.md (1 hunks)
- docs/models/index.md (1 hunks)
- docs/models/model_parts.md (1 hunks)
- docs/usage.md (1 hunks)
- dreem/datasets/base_dataset.py (2 hunks)
- dreem/datasets/cell_tracking_dataset.py (1 hunks)
- dreem/datasets/data_utils.py (2 hunks)
- dreem/datasets/eval_dataset.py (1 hunks)
- dreem/datasets/microscopy_dataset.py (1 hunks)
- dreem/datasets/sleap_dataset.py (1 hunks)
- dreem/inference/boxes.py (3 hunks)
- dreem/inference/metrics.py (4 hunks)
- dreem/inference/post_processing.py (2 hunks)
- dreem/inference/track.py (1 hunks)
- dreem/inference/track_queue.py (9 hunks)
- dreem/inference/tracker.py (5 hunks)
- dreem/io/association_matrix.py (1 hunks)
- dreem/io/config.py (1 hunks)
- dreem/io/frame.py (6 hunks)
- dreem/io/instance.py (2 hunks)
- dreem/io/track.py (2 hunks)
- dreem/io/visualize.py (1 hunks)
- dreem/models/global_tracking_transformer.py (1 hunks)
- dreem/models/model_utils.py (5 hunks)
- dreem/models/transformer.py (2 hunks)
- dreem/models/visual_encoder.py (3 hunks)
- dreem/training/configs/README.md (1 hunks)
- mkdocs.yml (1 hunks)
- pyproject.toml (1 hunks)
- scripts/gen_ref_pages.py (1 hunks)
Files skipped from review due to trivial changes (6)
- .gitignore
- docs/css/mkdocstrings.css
- dreem/datasets/eval_dataset.py
- mkdocs.yml
- pyproject.toml
- scripts/gen_ref_pages.py
Additional context used
Markdownlint
docs/io/frame.md
1-1: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
1-1: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/io/track.md
1-1: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
1-1: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/io/config.md
1-1: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
1-1: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/io/instance.md
1-1: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
1-1: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/configs/config.md
1-1: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
1-1: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/io/visualize.md
1-1: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
1-1: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/models/gtr_runner.md
1-1: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/io/asso_matrix.md
1-1: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
1-1: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/models/global_tracking_transformer.md
1-1: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
1-1: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
2-2: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/configs/index.md
3-3: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/models/model_parts.md
19-19: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/index.md
19-19: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
20-20: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
20-20: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
24-24: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
24-24: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
25-25: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
25-25: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
26-26: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
26-26: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
30-30: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
30-30: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
34-34: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
34-34: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
38-38: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
38-38: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
20-20: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
24-24: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
25-25: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
30-30: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
21-21: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
23-23: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
27-27: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
29-29: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
31-31: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
33-33: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
35-35: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
37-37: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
39-39: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
39-39: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified
41-41: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/io/index.md
7-7: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
1-1: Punctuation: '.' (MD026, no-trailing-punctuation)
Trailing punctuation in headingdocs/models/index.md
3-3: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
9-9: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
17-17: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/configs/inference.md
101-101: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
102-102: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
103-103: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
106-106: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
107-107: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
108-108: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
49-49: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
151-151: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
154-154: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
19-19: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
35-35: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
48-48: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
62-62: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
68-68: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
68-68: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
82-82: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
86-86: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
97-97: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
97-97: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
109-109: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
109-109: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
113-113: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
113-113: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
119-119: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
119-119: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
120-120: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
120-120: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
136-136: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
136-136: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
150-150: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
157-157: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
35-35: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
62-62: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
68-68: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
82-82: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
97-97: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
7-7: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
11-11: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
14-14: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
18-18: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
36-36: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
69-69: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
81-81: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
87-87: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
96-96: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
121-121: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
135-135: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
137-137: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
158-158: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
6-6: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
12-12: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
13-13: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
67-67: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
98-98: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
108-108: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
110-110: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
112-112: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
114-114: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
118-118: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
33-33: null (MD038, no-space-in-code)
Spaces inside code span elements
170-170: null (MD047, single-trailing-newline)
Files should end with a single newline characterdocs/usage.md
49-49: Expected: 0; Actual: 1 (MD007, ul-indent)
Unordered list indentation
50-50: Expected: 0; Actual: 1 (MD007, ul-indent)
Unordered list indentation
10-10: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
49-49: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
61-61: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
71-71: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
152-152: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
159-159: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
160-160: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
165-165: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
173-173: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
175-175: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
200-200: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
218-218: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
234-234: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
4-4: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
14-14: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
15-15: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
15-15: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
21-21: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
21-21: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
27-27: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
27-27: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
36-36: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
46-46: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
53-53: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
53-53: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
63-63: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
126-126: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
132-132: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
145-145: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
179-179: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
184-184: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
185-185: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
185-185: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
195-195: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
240-240: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
252-252: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
252-252: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
15-15: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
21-21: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
63-63: Punctuation: '.' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
66-66: Punctuation: '.' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
106-106: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
240-240: Punctuation: '.' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
17-17: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
19-19: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
23-23: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
25-25: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
29-29: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
31-31: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
74-74: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
116-116: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
120-120: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
156-156: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
166-166: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
168-168: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
170-170: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
172-172: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
203-203: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
247-247: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
249-249: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
251-251: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
74-74: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified
203-203: null (MD040, fenced-code-language)
Fenced code blocks should have a language specifiedREADME.md
85-85: Expected: 0; Actual: 1 (MD007, ul-indent)
Unordered list indentation
86-86: Expected: 0; Actual: 1 (MD007, ul-indent)
Unordered list indentation
48-48: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
85-85: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
97-97: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
107-107: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
163-163: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
187-187: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
194-194: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
195-195: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
200-200: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
208-208: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
210-210: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
233-233: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
250-250: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
266-266: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
16-16: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
17-17: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
17-17: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
21-21: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
21-21: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
22-22: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
22-22: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
23-23: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
23-23: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
27-27: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
27-27: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
31-31: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
31-31: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
35-35: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
35-35: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
43-43: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
52-52: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
53-53: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
53-53: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
59-59: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
59-59: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
65-65: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
65-65: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
74-74: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
83-83: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
89-89: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
89-89: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
99-99: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
162-162: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
167-167: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
180-180: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
214-214: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
219-219: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
220-220: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
220-220: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
229-229: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
272-272: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
284-284: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
284-284: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
17-17: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
21-21: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
22-22: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
27-27: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
53-53: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
59-59: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
99-99: Punctuation: '.' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
102-102: Punctuation: '.' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
142-142: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
272-272: Punctuation: '.' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
18-18: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
20-20: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
24-24: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
26-26: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
28-28: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
30-30: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
32-32: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
34-34: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
36-36: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
55-55: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
57-57: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
61-61: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
63-63: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
67-67: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
69-69: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
110-110: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
152-152: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
156-156: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
191-191: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
201-201: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
203-203: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
205-205: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
207-207: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
236-236: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
279-279: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
281-281: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
283-283: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
46-46: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
76-76: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
85-85: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
164-164: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
222-222: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
232-232: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
251-251: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
36-36: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified
110-110: null (MD040, fenced-code-language)
Fenced code blocks should have a language specified
236-236: null (MD040, fenced-code-language)
Fenced code blocks should have a language specifieddreem/training/configs/README.md
506-506: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
507-507: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
508-508: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
511-511: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
512-512: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
513-513: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
743-743: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
744-744: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
745-745: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
746-746: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
37-37: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
62-62: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
137-137: Expected: 0 or 2; Actual: 4 (MD009, no-trailing-spaces)
Trailing spaces
147-147: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
159-159: Expected: 0 or 2; Actual: 3 (MD009, no-trailing-spaces)
Trailing spaces
186-186: Expected: 0 or 2; Actual: 12 (MD009, no-trailing-spaces)
Trailing spaces
278-278: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
315-315: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
319-319: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
327-327: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
454-454: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
610-610: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
613-613: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
630-630: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
637-637: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
677-677: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
680-680: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
686-686: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
717-717: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
737-737: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
743-743: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
744-744: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
746-746: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
796-796: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
804-804: Expected: 1; Actual: 2 (MD012, no-multiple-blanks)
Multiple consecutive blank lines
805-805: Expected: 1; Actual: 3 (MD012, no-multiple-blanks)
Multiple consecutive blank lines
37-37: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
47-47: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
47-47: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
51-51: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
51-51: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
54-54: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
77-77: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
78-78: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
78-78: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
99-99: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
99-99: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
115-115: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
120-120: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
120-120: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
122-122: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
122-122: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
125-125: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
125-125: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
126-126: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
126-126: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
138-138: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
138-138: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
160-160: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
198-198: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
199-199: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
199-199: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
213-213: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
213-213: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
227-227: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
227-227: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
257-257: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
265-265: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
274-274: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
288-288: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
290-290: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
290-290: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
302-302: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
302-302: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
315-315: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
330-330: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
333-333: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
346-346: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
346-346: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
358-358: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
374-374: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
387-387: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
397-397: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
398-398: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
398-398: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
410-410: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
410-410: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
422-422: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
422-422: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
434-434: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
441-441: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
467-467: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
473-473: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
473-473: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
487-487: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
491-491: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
502-502: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
502-502: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
514-514: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
514-514: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
518-518: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
518-518: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
524-524: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
524-524: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
525-525: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
525-525: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
569-569: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
569-569: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
608-608: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
616-616: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
629-629: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
647-647: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
649-649: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
649-649: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
667-667: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
678-678: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
692-692: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
722-722: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
759-759: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
781-781: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
782-782: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
782-782: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
789-789: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
789-789: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
796-796: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
796-796: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
37-37: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
51-51: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
77-77: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
78-78: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
122-122: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
125-125: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
126-126: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
138-138: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
160-160: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
198-198: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
199-199: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
213-213: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
227-227: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
265-265: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
288-288: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
330-330: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
358-358: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
374-374: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
397-397: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
398-398: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
410-410: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
422-422: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
441-441: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
467-467: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
473-473: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
487-487: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
502-502: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
629-629: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
647-647: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
667-667: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
692-692: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
722-722: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
759-759: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
781-781: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
789-789: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
796-796: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
6-6: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
11-11: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
13-13: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
63-63: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
79-79: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
98-98: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
100-100: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
114-114: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
127-127: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
137-137: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
139-139: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
147-147: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
149-149: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
159-159: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
200-200: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
212-212: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
214-214: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
226-226: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
229-229: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
256-256: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
266-266: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
273-273: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
291-291: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
301-301: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
303-303: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
314-314: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
334-334: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
345-345: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
347-347: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
357-357: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
375-375: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
386-386: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
399-399: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
409-409: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
411-411: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
421-421: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
423-423: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
433-433: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
442-442: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
474-474: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
486-486: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
492-492: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
501-501: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
526-526: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
568-568: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
570-570: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
607-607: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
617-617: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
650-650: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
668-668: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
677-677: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
693-693: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
723-723: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
760-760: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
783-783: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
788-788: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
790-790: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
795-795: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
797-797: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
36-36: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
46-46: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
48-48: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
50-50: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
52-52: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
53-53: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
119-119: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
121-121: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
121-121: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
123-123: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
124-124: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
472-472: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
503-503: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
513-513: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
515-515: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
517-517: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
519-519: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
523-523: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
738-738: null (MD034, no-bare-urls)
Bare URL used
372-372: null (MD038, no-space-in-code)
Spaces inside code span elements
643-643: null (MD038, no-space-in-code)
Spaces inside code span elementsdocs/configs/training.md
506-506: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
507-507: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
508-508: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
511-511: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
512-512: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
513-513: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
743-743: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
744-744: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
745-745: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
746-746: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
37-37: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
62-62: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
137-137: Expected: 0 or 2; Actual: 4 (MD009, no-trailing-spaces)
Trailing spaces
147-147: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
159-159: Expected: 0 or 2; Actual: 3 (MD009, no-trailing-spaces)
Trailing spaces
186-186: Expected: 0 or 2; Actual: 12 (MD009, no-trailing-spaces)
Trailing spaces
278-278: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
319-319: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
327-327: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
454-454: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
610-610: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
613-613: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
630-630: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
637-637: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
677-677: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
680-680: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
686-686: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
717-717: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
737-737: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
743-743: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
744-744: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
746-746: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
796-796: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
37-37: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
47-47: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
47-47: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
51-51: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
51-51: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
54-54: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
77-77: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
78-78: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
78-78: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
99-99: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
99-99: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
115-115: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
120-120: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
120-120: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
122-122: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
122-122: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
125-125: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
125-125: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
126-126: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
126-126: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
138-138: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
138-138: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
160-160: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
198-198: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
199-199: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
199-199: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
213-213: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
213-213: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
227-227: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
227-227: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
257-257: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
265-265: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
274-274: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
288-288: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
290-290: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
290-290: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
302-302: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
302-302: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
315-315: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
330-330: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
333-333: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
346-346: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
346-346: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
358-358: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
374-374: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
387-387: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
397-397: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
398-398: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
398-398: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
410-410: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
410-410: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
422-422: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
422-422: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
434-434: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
441-441: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
467-467: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
473-473: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
473-473: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
487-487: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
491-491: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
502-502: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
502-502: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
514-514: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
514-514: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
518-518: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
518-518: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
524-524: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
524-524: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
525-525: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
525-525: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
569-569: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
569-569: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
608-608: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
616-616: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
629-629: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
647-647: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
649-649: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
649-649: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
667-667: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
678-678: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
692-692: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
722-722: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
759-759: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
781-781: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
782-782: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
782-782: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
789-789: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
789-789: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
796-796: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
796-796: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
804-804: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
805-805: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
805-805: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
809-809: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
809-809: Expected: 1; Actual: 0; Below (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
804-804: null (MD025, single-title, single-h1)
Multiple top-level headings in the same document
37-37: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
51-51: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
77-77: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
78-78: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
122-122: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
125-125: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
126-126: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
138-138: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
160-160: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
198-198: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
199-199: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
213-213: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
227-227: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
265-265: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
288-288: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
330-330: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
358-358: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
374-374: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
397-397: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
398-398: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
410-410: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
422-422: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
441-441: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
467-467: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
473-473: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
487-487: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
502-502: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
629-629: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
647-647: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
667-667: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
692-692: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
722-722: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
759-759: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
781-781: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
789-789: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
796-796: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
6-6: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
11-11: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
13-13: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
63-63: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
79-79: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
98-98: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
100-100: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
114-114: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
127-127: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
137-137: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
139-139: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
147-147: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
149-149: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
159-159: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
200-200: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
212-212: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
214-214: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
226-226: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
229-229: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
256-256: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
266-266: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
273-273: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
291-291: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
301-301: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
303-303: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
314-314: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
334-334: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
345-345: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
347-347: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
357-357: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
375-375: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
386-386: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
399-399: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
409-409: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
411-411: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
421-421: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
423-423: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
433-433: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
442-442: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
474-474: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
486-486: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
492-492: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
501-501: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
526-526: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
568-568: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
570-570: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
607-607: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
617-617: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
650-650: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
668-668: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
677-677: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
693-693: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
723-723: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
760-760: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
783-783: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
788-788: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
790-790: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
795-795: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
797-797: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
806-806: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
808-808: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
810-810: null (MD031, blanks-around-fences)
Fenced code blocks should be surrounded by blank lines
36-36: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
46-46: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
48-48: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
50-50: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
52-52: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
53-53: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
119-119: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
121-121: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
121-121: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
123-123: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
124-124: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
472-472: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
503-503: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
513-513: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
515-515: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
517-517: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
519-519: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
523-523: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
738-738: null (MD034, no-bare-urls)
Bare URL used
643-643: null (MD038, no-space-in-code)
Spaces inside code span elements
811-811: null (MD047, single-trailing-newline)
Files should end with a single newline character
LanguageTool
docs/models/index.md
[uncategorized] ~10-~10: “its” (belonging to it) seems less likely than “it’s” (it is) (AI_HYDRA_LEO_CPT_ITS_ITIS)
Context: ...have modularized each component so that its easy to compose into your own custom mo...
[uncategorized] ~12-~12: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...eference/dreem/models/visual_encoder.md): A CNN backbone used for feature extract...
[uncategorized] ~15-~15: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...m.models.transformer.TransformerEncoder): A stack of [TransformerEncoderLayer
s]...docs/configs/inference.md
[style] ~24-~24: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ... inference. *use_vis_feats
: (bool
) Whether or not to use visual feature extractor. * `ove...
[style] ~26-~26: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...r assignment. *mult_thresh
: (bool
) Whether or not to use weight threshold. *decay_time
...
[uncategorized] ~26-~26: You might be missing the article “a” here. (AI_EN_LECTOR_MISSING_DETERMINER_A)
Context: ...thresh: (
bool) Whether or not to use weight threshold. *
decay_time: (
float`) we...
[uncategorized] ~53-~53: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...asets/base_dataset.md) args *padding
: Anint
representing the amount of pad...
[uncategorized] ~55-~55: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...around which a crop will form. *chunk
: Whether or not to chunk videos into sma...
[style] ~55-~55: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...ound which a crop will form. *chunk
: Whether or not to chunk videos into smaller clips to f...
[uncategorized] ~58-~58: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...for training or validation. *n_chunks
: Number of chunks to subsample from. Can...
[uncategorized] ~58-~58: You might be missing the article “a” here. (AI_EN_LECTOR_MISSING_DETERMINER_A)
Context: ...action of the dataset (ie(0,1.0]
) or number of chunks *seed
: set a seed for repr...
[uncategorized] ~62-~62: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...tracking challenge datasets. ####dir
: This section allows you to pass a direc...
[uncategorized] ~65-~65: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... to labels/videos individually *path
: The path to the dir where the data is s...
[uncategorized] ~67-~67: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... the file extension to search for video files e.g.mp4
,.avi
or.tif
. ##### Exa...
[uncategorized] ~82-~82: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...... ... ... ``` ####augmentations
: This subsection contains params for al...
[uncategorized] ~105-~105: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... all visible anchors. *handle_missing
: how to handle missing single nodes. one...
[typographical] ~107-~107: Consider adding a comma. (IF_THEN_COMMA)
Context: ... missing theanchor
. * ifignore
then we use a mask instead of a crop and nan...
[style] ~108-~108: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Context: ... a crop and nan centroids/bboxes. * ifcentroid
then we default to the pose ...
[typographical] ~108-~108: Consider adding a comma. (IF_THEN_COMMA)
Context: ...an centroids/bboxes. * ifcentroid
then we default to the pose centroid as the ...
[uncategorized] ~152-~152: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... for the dataloaders. For more advanced users see [torch.utils.data.Dataloader
](htt...docs/usage.md
[style] ~3-~3: The word ‘thru’ is informal. Consider replacing it with “through”. (THRU)
Context: ...e a basic workflow from setting up data thru training and running inference. Regardl...
[style] ~3-~3: The word ‘thru’ is informal. Consider replacing it with “through”. (THRU)
Context: ...ference, we recommend at least skimming thru the entire tutorial as there may be use...
[style] ~36-~36: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ... ### Step 1: Generate Ground Truth Data In order to train a model you need 2 things. 1. A ...
[uncategorized] ~40-~40: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...2 things. 1. A video. - For animal data see the [imageio
](https://imageio.rea...
[uncategorized] ~41-~41: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...ported file types. - For microscopy data we currently support.tif
files. Vide...
[uncategorized] ~47-~47: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...Initial labels To generate your initial labels we recommend a couple methods. - For ...
[grammar] ~47-~47: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...rate your initial labels we recommend a couple methods. - For animal pose-estimation, we hig...
[uncategorized] ~49-~49: Write this as one word if you mean the noun “workflow”. (WORK_COMPOUNDS)
Context: ...s://sleap.ai) and running through their work flow. - For microscopy tracking, check out...
[uncategorized] ~52-~52: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ... you'd like to use a different method, (e.g DeepLabCut or ilastik etc), the easiest...
[style] ~52-~52: In American English, abbreviations like “etc.” require a period. (ETC_PERIOD)
Context: ...rent method, (e.g DeepLabCut or ilastik etc), the easiest way to make your data com...
[uncategorized] ~52-~52: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE_2)
Context: ...ively, you can write a custom dataloader but that will take significantly more overh...
[uncategorized] ~54-~54: If this is a compound adjective that modifies the following noun, use a hyphen. (EN_COMPOUND_ADJECTIVE_INTERNAL)
Context: ... thing to train a good model is to have high quality data. In our case good quality means tw...
[typographical] ~54-~54: At the start of a sentence, a comma is usually required for the expression ‘In “our case,”’. (COMMA_OF_IN_PRPS_CASE)
Context: ... model is to have high quality data. In our case good quality means two things: 1. No i...
[style] ~58-~58: To elevate your writing, try using a synonym here. (HARD_TO)
Context: ...o avoid having detection coordinates be hard to distinguish. For instance, with anim...
[formatting] ~58-~58: Consider inserting a comma before ‘however’. (HOWEVER_MISSING_COMMA)
Context: ...ld be as tight as possible. This may be unavoidable however, in cases of occlusion and overlap. See ...
[style] ~63-~63: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...ting data to a SLEAP compatible format. In order to use the SLEAP gui you'll need to have y...
[uncategorized] ~64-~64: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...tible format. In order to use the SLEAP gui you'll need to have your labels and vid...
[uncategorized] ~64-~64: A comma may be missing after the conjunctive/linking adverb ‘Otherwise’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ... you can start proofreading right away. Otherwise if you used a different system (e.g Dee...
[uncategorized] ~64-~64: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...herwise if you used a different system (e.g DeepLabCut) check out [`sleap.io.conver...
[grammar] ~68-~68: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...e recommend organizing your data with a couple things in mind. 1. Match video and labels fil...
[style] ~70-~70: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...lp, file2.slp], [vid1.mp4, vid2.mp4]`). In order to make programmatic file searching easy i...
[uncategorized] ~70-~70: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...der to make programmatic file searching easy its best to save your labels and vid fi...
[uncategorized] ~70-~70: “its” (belonging to it) seems less likely than “it’s” (it is) (AI_HYDRA_LEO_CPT_ITS_ITIS)
Context: ...o make programmatic file searching easy its best to save your labels and vid files ...
[style] ~70-~70: ‘vid’ is informal. Consider replacing it. (VID)
Context: ...g easy its best to save your labels and vid files with the same stem so that you ca...
[uncategorized] ~70-~70: “its” (belonging to it) seems less likely than “it’s” (it is) (AI_HYDRA_LEO_CPT_ITS_ITIS)
Context: ...ensure the ordering will be consistent. Its also just best practice so you know whi...
[uncategorized] ~70-~70: It seems likely that a singular genitive (’s) apostrophe is missing. (AI_HYDRA_LEO_APOSTROPHE_S_XS)
Context: ...best practice so you know which video a labels file corresponds to. 2. Store correspon...
[style] ~104-~104: Consider replacing this word to strengthen your wording. (AND_THAT)
Context: ...train script if you're an advanced user and would like to have some additional flex...
[uncategorized] ~108-~108: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...set of parameters when training (for an example see [here](configs/training.md#override...
[uncategorized] ~119-~119: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...nside my/home/aaprasad/dreem_configs
directory I can call ```bash python /home/aaprasa...
[uncategorized] ~124-~124: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...relative paths as well but may be a bit riskier so we recommend absolute paths whenever...
[grammar] ~139-~139: It seems like one article is redundant in this context. (A_RB_A_JJ_NN)
Context: .../dreem_configs` directory that contains a only a small selection of parameters that I'd like t...
[uncategorized] ~146-~146: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...g a specific param via the command line directly you can use thesection.param=key
syn...
[uncategorized] ~151-~151: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...E_CONFIG_STEM] section.param=value ``` e.g If now I want to override a couple para...
[grammar] ~152-~152: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...ue ``` e.g If now I want to override a couple parameters again, say change the number of attenti...
[grammar] ~158-~158: The verb “add” needs to be in the to-infinitive form. (MISSING_TO_BEFORE_A_VERB)
Context: ...wise an error will be thrown > if you'd like add a new parameter you can add++
to the...
[typographical] ~160-~160: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence. (THUS_SENTENCE)
Context: ...t to make sure you've matched the param exactly, otherwise it will simply add a new parameter with...
[uncategorized] ~161-~161: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...and the original value won't change. > e.g doingmodel.n_head=3
will cause the o...
[uncategorized] ~165-~165: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...d the direct override or the file-based override however you can technically do both via...
[uncategorized] ~175-~175: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...g CLI and file-based override syntax > (e.g make suresection.param
doesn't appea...
[uncategorized] ~186-~186: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...tem is that we decouple detection and tracking so you can use off-the-shelf high perfo...
[style] ~186-~186: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...estimators/segementors. This means that in order to run inference(tracking) with our model ...
[uncategorized] ~186-~186: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...der to run inference(tracking) with our model you need 3 things. 1. A pretrained mod...
[uncategorized] ~190-~190: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...kptfile. 2. A video. - For animal data see the [
imageio`](https://imageio.rea...
[uncategorized] ~191-~191: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...ported file types. - For microscopy data we currently support.tif
files. Vide...
[style] ~192-~192: Did you mean ‘different from’? ‘Different than’ is often considered colloquial style. (DIFFERENT_THAN)
Context: ... This labels file is slightly different than in training because we only need detect...
[uncategorized] ~192-~192: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...ing because we only need detections for tracking since the tracks will of course come fr...
[typographical] ~192-~192: Consider adding two commas here. (OF_COURSE_COMMA)
Context: ...tions for tracking since the tracks will of course come from our model predictions. We st...
[uncategorized] ~194-~194: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...d your detections if you'd like to. For TrackMate we recommend using the "spots table" la...
[style] ~199-~199: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...lp, file2.slp], [vid1.mp4, vid2.mp4]`). In order to make programmatic file searching easy i...
[uncategorized] ~199-~199: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...der to make programmatic file searching easy its best to save your labels and vid fi...
[uncategorized] ~199-~199: “its” (belonging to it) seems less likely than “it’s” (it is) (AI_HYDRA_LEO_CPT_ITS_ITIS)
Context: ...o make programmatic file searching easy its best to save your labels and vid files ...
[style] ~199-~199: ‘vid’ is informal. Consider replacing it. (VID)
Context: ...g easy its best to save your labels and vid files with the same stem so that you ca...
[uncategorized] ~199-~199: “its” (belonging to it) seems less likely than “it’s” (it is) (AI_HYDRA_LEO_CPT_ITS_ITIS)
Context: ...ensure the ordering will be consistent. Its also just best practice so you know whi...
[uncategorized] ~199-~199: It seems likely that a singular genitive (’s) apostrophe is missing. (AI_HYDRA_LEO_APOSTROPHE_S_XS)
Context: ...best practice so you know which video a labels file corresponds to. 2. Store correspon...
[misspelling] ~219-~219: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...et up a config file that specifies 1. ackpt_path
2. aout_dir
3. a `Tracke...
[misspelling] ~220-~220: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...le that specifies 1. ackpt_path
2. aout_dir
3. aTracker
config 4. a `d...
[uncategorized] ~228-~228: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...e. ### Step 3 Run Inference Just like training we can use the hydra syntax for specify...
[uncategorized] ~228-~228: A comma may be missing after the conjunctive/linking adverb ‘Thus’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ...x for specifying arguments via the cli. Thus you can run inference via: ```bash pyt...
[uncategorized] ~241-~241: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE)
Context: ...ased override rather than the file based but you're more than welcome to do so. In ...
[style] ~242-~242: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...but you're more than welcome to do so. In order to override params via the CLI, we can use...
[uncategorized] ~247-~247: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...[CONFIG_STEM] section.param=[VALUE] ``` e.g if I want to set the window size of the...
[typographical] ~253-~253: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence. (THUS_SENTENCE)
Context: ...pecified in the config it will save to./[OUTDIR]/[VID_NAME].dreem_inference.slp
, otherwise it will just save to `./results/[VID_NA...README.md
[style] ~42-~42: The word ‘thru’ is informal. Consider replacing it with “through”. (THRU)
Context: ...e a basic workflow from setting up data thru training and running inference. Regardl...
[style] ~42-~42: The word ‘thru’ is informal. Consider replacing it with “through”. (THRU)
Context: ...ference, we recommend at least skimming thru the entire tutorial as there may be use...
[style] ~74-~74: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...#### Step 1: Generate Ground Truth Data In order to train a model you need 2 things. 1. A v...
[grammar] ~84-~84: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...rate your initial labels we recommend a couple methods. - For animal pose-estimation, we high...
[uncategorized] ~85-~85: Write this as one word if you mean the noun “workflow”. (WORK_COMPOUNDS)
Context: ...s://sleap.ai) and running through their work flow. - For microscopy tracking, check out...
[uncategorized] ~88-~88: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ... you'd like to use a different method, (e.g DeepLabCut or ilastik etc), the easiest...
[style] ~88-~88: In American English, abbreviations like “etc.” require a period. (ETC_PERIOD)
Context: ...rent method, (e.g DeepLabCut or ilastik etc), the easiest way to make your data com...
[uncategorized] ~88-~88: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE_2)
Context: ...ively, you can write a custom dataloader but that will take significantly more overh...
[uncategorized] ~90-~90: If this is a compound adjective that modifies the following noun, use a hyphen. (EN_COMPOUND_ADJECTIVE_INTERNAL)
Context: ... thing to train a good model is to have high quality data. In our case good quality means tw...
[typographical] ~90-~90: At the start of a sentence, a comma is usually required for the expression ‘In “our case,”’. (COMMA_OF_IN_PRPS_CASE)
Context: ... model is to have high quality data. In our case good quality means two things: 1. No i...
[style] ~94-~94: To elevate your writing, try using a synonym here. (HARD_TO)
Context: ...o avoid having detection coordinates be hard to distinguish. For instance, with anim...
[formatting] ~94-~94: Consider inserting a comma before ‘however’. (HOWEVER_MISSING_COMMA)
Context: ...ld be as tight as possible. This may be unavoidable however, in cases of occlusion and overlap. See ...
[style] ~99-~99: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...ting data to a SLEAP compatible format. In order to use the SLEAP gui you'll need to have y...
[uncategorized] ~100-~100: A comma may be missing after the conjunctive/linking adverb ‘Otherwise’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ... you can start proofreading right away. Otherwise if you used a different system (e.g Dee...
[uncategorized] ~100-~100: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...herwise if you used a different system (e.g DeepLabCut) check out [`sleap.io.conver...
[grammar] ~104-~104: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...e recommend organizing your data with a couple things in mind. 1. Match video and labels fil...
[style] ~106-~106: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...lp, file2.slp], [vid1.mp4, vid2.mp4]`). In order to make programmatic file searching easy i...
[style] ~106-~106: ‘vid’ is informal. Consider replacing it. (VID)
Context: ...g easy its best to save your labels and vid files with the same stem so that you ca...
[grammar] ~106-~106: Did you mean “it’s” (contraction of “it is/has”)? (ITS_TO_IT_S)
Context: ...ensure the ordering will be consistent. Its also just best practice so you know whi...
[style] ~140-~140: Consider replacing this word to strengthen your wording. (AND_THAT)
Context: ...train script if you're an advanced user and would like to have some additional flex...
[grammar] ~144-~144: The word “checkout” is a noun. The verb is spelled with a space. (NOUN_VERB_CONFUSION)
Context: ... parameters needed for training. Please checkout the [README
](dreem/training/configs/R...
[grammar] ~174-~174: It seems like one article is redundant in this context. (A_RB_A_JJ_NN)
Context: .../dreem_configs` directory that contains a only a small selection of parameters that I'd like t...
[uncategorized] ~186-~186: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...E_CONFIG_STEM] section.param=value ``` e.g If now I want to override a couple para...
[grammar] ~187-~187: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...ue ``` e.g If now I want to override a couple parameters again, say change the number of attenti...
[grammar] ~193-~193: The verb “add” needs to be in the to-infinitive form. (MISSING_TO_BEFORE_A_VERB)
Context: ...wise an error will be thrown > if you'd like add a new parameter you can add++
to the...
[typographical] ~195-~195: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence. (THUS_SENTENCE)
Context: ...t to make sure you've matched the param exactly, otherwise it will simply add a new parameter with...
[uncategorized] ~196-~196: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...and the original value won't change. > e.g doingmodel.n_head=3
will cause the o...
[uncategorized] ~210-~210: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...g CLI and file-based override syntax > (e.g make suresection.param
doesn't appea...
[style] ~221-~221: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...estimators/segementors. This means that in order to run inference(tracking) with our model ...
[style] ~226-~226: Did you mean ‘different from’? ‘Different than’ is often considered colloquial style. (DIFFERENT_THAN)
Context: ... This labels file is slightly different than in training because we only need detect...
[typographical] ~226-~226: Consider adding two commas here. (OF_COURSE_COMMA)
Context: ...tions for tracking since the tracks will of course come from our model predictions. We st...
[style] ~232-~232: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...lp, file2.slp], [vid1.mp4, vid2.mp4]`). In order to make programmatic file searching easy i...
[style] ~232-~232: ‘vid’ is informal. Consider replacing it. (VID)
Context: ...g easy its best to save your labels and vid files with the same stem so that you ca...
[grammar] ~232-~232: Did you mean “it’s” (contraction of “it is/has”)? (ITS_TO_IT_S)
Context: ...ensure the ordering will be consistent. Its also just best practice so you know whi...
[misspelling] ~251-~251: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...set up a config file that specifies 1. ackpt_path
2. aout_dir
3. a `Tracke...
[misspelling] ~252-~252: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...ile that specifies 1. ackpt_path
2. aout_dir
3. aTracker
config 4. a `d...
[uncategorized] ~260-~260: A comma may be missing after the conjunctive/linking adverb ‘Thus’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ...x for specifying arguments via the cli. Thus you can run inference via: ```bash pyt...
[uncategorized] ~273-~273: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE)
Context: ...ased override rather than the file based but you're more than welcome to do so. In ...
[style] ~274-~274: Consider a shorter alternative to avoid wordiness. (IN_ORDER_TO_PREMIUM)
Context: ...but you're more than welcome to do so. In order to override params via the CLI, we can use...
[uncategorized] ~279-~279: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...[CONFIG_STEM] section.param=[VALUE] ``` e.g if I want to set the window size of the...
[typographical] ~285-~285: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence. (THUS_SENTENCE)
Context: ...pecified in the config it will save to./[OUTDIR]/[VID_NAME].dreem_inference.slp
, otherwise it will just save to `./results/[VID_NA...dreem/training/configs/README.md
[uncategorized] ~5-~5: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...llwill initialize the value to
None` e.g > ```YAML > model: > d_model: #defaul...
[style] ~31-~31: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...) *return_intermediate_dec
: (bool
) whether or not to return the output from the intermedi...
[style] ~32-~32: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...iate decoder layers. *norm
: (bool
) whether or not to normalize output of encoder and deco...
[uncategorized] ~33-~33: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...er and decoder. *num_layers_attn_head
: Anint
The number of layers in the [`...
[uncategorized] ~37-~37: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...###embedding_meta
: This section contains parameters for ...
[style] ~49-~49: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...ition embedding *normalize
: (bool
) whether or not to normalize the positions (Only used i...
[style] ~194-~194: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...i-anchor crops *pretrained
: (bool
) Whether or not to use a pretrained backbone or initial...
[uncategorized] ~213-~213: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... ... ... ...##### `torchvision`:
YAML ... model: ... encoder_...
[uncategorized] ~228-~228: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...``` ###model
Example: Putting it all together your `model` config section will look s...
[typographical] ~281-~281: Consider adding a comma here. (PLEASE_COMMA)
Context: ... is our default. For more advanced users please see the respective pytorch documentatio...
[grammar] ~289-~289: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...nalty) ### Examples: Here we provide a couple examples for different optimizers: #### [Adam
]...
[typographical] ~322-~322: Consider adding a comma here. (PLEASE_COMMA)
Context: ... is our default. For more advanced users please see the respective pytorch documentatio...
[uncategorized] ~324-~324: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...itored has stopped decreasing; inmax
mode it will be reduced when the quantity mo...
[grammar] ~331-~331: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...in` mode. ### Examples: Here we give a couple examples of configs for different schedulers: #...
[uncategorized] ~358-~358: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: .... ``` ##tracker
: This section contains parameters for i...
[uncategorized] ~362-~362: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...tializing theTracker
*window_size
: the size of the window used during slid...
[uncategorized] ~363-~363: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ing sliding inference. *use_vis_feats
: Whether or not to use visual feature ex...
[style] ~363-~363: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...g sliding inference. *use_vis_feats
: Whether or not to use visual feature extractor. * `ove...
[uncategorized] ~364-~364: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...al feature extractor. *overlap_thresh
: the trajectory overlap threshold to be ...
[uncategorized] ~365-~365: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... be used for assignment. *mult_thresh
: Whether or not to use weight threshold....
[style] ~365-~365: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...e used for assignment. *mult_thresh
: Whether or not to use weight threshold. *decay_time
...
[uncategorized] ~366-~366: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... to use weight threshold. *decay_time
: weight fordecay_time
postprocessing....
[uncategorized] ~367-~367: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...fordecay_time
postprocessing. *iou
: Either{None, '', "mult" or "max"}
. W...
[uncategorized] ~368-~368: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...max iou reweighting. *max_center_dist
: distance threshold for filtering trajec...
[uncategorized] ~369-~369: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ry score matrix. *persistent_tracking
: whether to keep a buffer across chunks ...
[uncategorized] ~370-~370: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...buffer across chunks or not. *max_gap
: the max number of frames a trajectory c...
[uncategorized] ~371-~371: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ssing before termination. *max_tracks
: the maximum number of tracks that can b...
[style] ~436-~436: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...se.yaml#L62-65) This section indicates whether or not to track across chunks during training/...
[uncategorized] ~458-~458: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...asets/base_dataset.py) args *padding
: Anint
representing the amount of pad...
[uncategorized] ~460-~460: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...around which a crop will form. *chunk
: Whether or not to chunk videos into sma...
[style] ~460-~460: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...ound which a crop will form. *chunk
: Whether or not to chunk videos into smaller clips to f...
[uncategorized] ~463-~463: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...for training or validation. *n_chunks
: Number of chunks to subsample from. Can...
[uncategorized] ~467-~467: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...tracking challenge datasets. ####dir
: This section allows you to pass a direc...
[uncategorized] ~470-~470: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... to labels/videos individually *path
: The path to the dir where the data is s...
[uncategorized] ~472-~472: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... the file extension to search for video files e.g.mp4
,.avi
or.tif
. ##### Exa...
[uncategorized] ~487-~487: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...... ... ... ``` ####augmentations
: This subsection contains params for al...
[uncategorized] ~510-~510: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... all visible anchors. *handle_missing
: how to handle missing single nodes. one...
[typographical] ~512-~512: Consider adding a comma. (IF_THEN_COMMA)
Context: ... missing theanchor
. * ifignore
then we use a mask instead of a crop and nan...
[style] ~513-~513: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Context: ... a crop and nan centroids/bboxes. * ifcentroid
then we default to the pose ...
[typographical] ~513-~513: Consider adding a comma. (IF_THEN_COMMA)
Context: ...an centroids/bboxes. * ifcentroid
then we default to the pose centroid as the ...
[uncategorized] ~611-~611: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ..._dataloader/
test_dataloader` keys. > Below we list the args we found useful/necess...
[uncategorized] ~629-~629: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... ``` ##logging
: This section sets up logging for the tr...
[uncategorized] ~638-~638: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...que in the project, and if you delete a run you can't reuse the ID. *project
: (`...
[grammar] ~648-~648: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ... args. ### Examples: Here we provide a couple examples for different available loggers #### [`...
[uncategorized] ~667-~667: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule-lightning.pytorch.loggers.csv_logs): ```YAML ... logging: save_dir: "./l...
[style] ~682-~682: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Context: ... see `lightning.callbacks.EarlyStopping for available arguments for more fine ...
[misspelling] ~682-~682: This word is normally spelled with a hyphen. (EN_COMPOUNDS_FINE_GRAINED)
Context: ...pping) for available arguments for more fine grained control *monitor
(str
): quantity ...
[uncategorized] ~686-~686: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...ence(
int`): number of checks with no improvement after which training will be stopped. ...
[uncategorized] ~711-~711: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...eckpointing during training *monitor
: A list of metrics to save best models f...
[uncategorized] ~715-~715: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... checkpoints at the end of training. > Below we describe the arguments we found usef...
[misspelling] ~715-~715: This word is normally spelled with a hyphen. (EN_COMPOUNDS_FINE_GRAINED)
Context: ...ound useful for checkpointing. For more fine grained control see [`lightning.callbacks.Model...
[uncategorized] ~715-~715: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...or checkpointing. For more fine grained control see [`lightning.callbacks.ModelCheckpoi...
[style] ~715-~715: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Context: ...ting. For more fine grained control seelightning.callbacks.ModelCheckpoint
for available checkpointing params and...
[typographical] ~717-~717: Consider adding a comma. (IF_THEN_COMMA)
Context: ...ectory to save the models. If left empty then we first try to save to `./models/[GROU...
[typographical] ~717-~717: Do not use a colon (:) before a series that is introduced by a preposition (‘to’). Remove the colon or add a noun or a noun phrase after the preposition. (RP_COLON)
Context: ...ogger iswandb
otherwise we just save to./models
*save_last
: (bool
): WhenTrue
, saves a last.ckp...
[style] ~718-~718: To form a complete sentence, be sure to include a subject. (MISSING_IT_THERE)
Context: ... whenever a checkpoint file gets saved. Can be set to 'link' on a local filesystem ...
[uncategorized] ~738-~738: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...htning.Trainer` object for training. > Below we describe the arguments we found usef...
[misspelling] ~738-~738: This word is normally spelled with a hyphen. (EN_COMPOUNDS_FINE_GRAINED)
Context: ...ch/stable/common/trainer.html) for more fine grained control and how thetrainer
works in ...
[style] ~742-~742: To form a complete sentence, be sure to include a subject. (MISSING_IT_THERE)
Context: ...t]|
str|
int)
The devices to use. Can be set to: * a positive number (`in...
[typographical] ~742-~742: Do not use a colon (:) before a series that is introduced by a preposition (‘to’). Remove the colon or add a noun or a noun phrase after the preposition. (RP_COLON)
Context: ...|int
)The devices to use. Can be set to: * a positive number (
int|
str`)...
[style] ~777-~777: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...a before training *enable
: (bool
) whether or not to view a batch *num_frames
: (int
)...
[style] ~779-~779: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...ch to visualize *no_train
: (bool
) whether or not to train after visualization is complet...docs/configs/training.md
[uncategorized] ~5-~5: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...llwill initialize the value to
None` e.g > ```YAML > model: > d_model: #defaul...
[style] ~31-~31: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: .... *return_intermediate_dec
: (bool
) whether or not to return the output from the intermedi...
[style] ~32-~32: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...iate decoder layers. *norm
: (bool
) whether or not to normalize output of encoder and deco...
[uncategorized] ~33-~33: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...er and decoder. *num_layers_attn_head
: Anint
The number of layers in the [`...
[uncategorized] ~37-~37: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ion in the decoder. ###embedding_meta
: This section contains parameters for ...
[style] ~49-~49: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...ition embedding *normalize
: (bool
) whether or not to normalize the positions (Only used i...
[style] ~194-~194: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...i-anchor crops *pretrained
: (bool
) Whether or not to use a pretrained backbone or initial...
[uncategorized] ~213-~213: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... ... ... ...##### `torchvision`:
YAML ... model: ... encoder_...
[uncategorized] ~228-~228: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...``` ###model
Example: Putting it all together your `model` config section will look s...
[typographical] ~281-~281: Consider adding a comma here. (PLEASE_COMMA)
Context: ... is our default. For more advanced users please see the respective pytorch documentatio...
[grammar] ~289-~289: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...nalty) ### Examples: Here we provide a couple examples for different optimizers: #### [Adam
]...
[typographical] ~322-~322: Consider adding a comma here. (PLEASE_COMMA)
Context: ... is our default. For more advanced users please see the respective pytorch documentatio...
[grammar] ~331-~331: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ...in` mode. ### Examples: Here we give a couple examples of configs for different schedulers: #...
[uncategorized] ~358-~358: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...0 verbose: True ... ``` ##tracker
: This section contains parameters for i...
[uncategorized] ~362-~362: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...m/inference/tracker.md) *window_size
: the size of the window used during slid...
[uncategorized] ~363-~363: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ing sliding inference. *use_vis_feats
: Whether or not to use visual feature ex...
[style] ~363-~363: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...g sliding inference. *use_vis_feats
: Whether or not to use visual feature extractor. * `ove...
[uncategorized] ~364-~364: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...al feature extractor. *overlap_thresh
: the trajectory overlap threshold to be ...
[uncategorized] ~365-~365: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... be used for assignment. *mult_thresh
: Whether or not to use weight threshold....
[style] ~365-~365: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...e used for assignment. *mult_thresh
: Whether or not to use weight threshold. *decay_time
...
[uncategorized] ~366-~366: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... to use weight threshold. *decay_time
: weight fordecay_time
postprocessing....
[uncategorized] ~367-~367: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...fordecay_time
postprocessing. *iou
: Either{None, '', "mult" or "max"}
. W...
[uncategorized] ~368-~368: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...max iou reweighting. *max_center_dist
: distance threshold for filtering trajec...
[uncategorized] ~369-~369: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ry score matrix. *persistent_tracking
: whether to keep a buffer across chunks ...
[uncategorized] ~370-~370: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...buffer across chunks or not. *max_gap
: the max number of frames a trajectory c...
[uncategorized] ~371-~371: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ssing before termination. *max_tracks
: the maximum number of tracks that can b...
[style] ~436-~436: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...stent_tracking` This section indicates whether or not to track across chunks during training/...
[uncategorized] ~458-~458: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...asets/base_dataset.md) args *padding
: Anint
representing the amount of pad...
[uncategorized] ~460-~460: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...around which a crop will form. *chunk
: Whether or not to chunk videos into sma...
[style] ~460-~460: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...ound which a crop will form. *chunk
: Whether or not to chunk videos into smaller clips to f...
[uncategorized] ~463-~463: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...for training or validation. *n_chunks
: Number of chunks to subsample from. Can...
[uncategorized] ~467-~467: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...tracking challenge datasets. ####dir
: This section allows you to pass a direc...
[uncategorized] ~470-~470: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... to labels/videos individually *path
: The path to the dir where the data is s...
[uncategorized] ~472-~472: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... the file extension to search for video files e.g.mp4
,.avi
or.tif
. ##### Exa...
[uncategorized] ~487-~487: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...... ... ... ``` ####augmentations
: This subsection contains params for al...
[uncategorized] ~510-~510: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... all visible anchors. *handle_missing
: how to handle missing single nodes. one...
[typographical] ~512-~512: Consider adding a comma. (IF_THEN_COMMA)
Context: ... missing theanchor
. * ifignore
then we use a mask instead of a crop and nan...
[style] ~513-~513: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Context: ... a crop and nan centroids/bboxes. * ifcentroid
then we default to the pose ...
[typographical] ~513-~513: Consider adding a comma. (IF_THEN_COMMA)
Context: ...an centroids/bboxes. * ifcentroid
then we default to the pose centroid as the ...
[uncategorized] ~611-~611: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ..._dataloader/
test_dataloader` keys. > Below we list the args we found useful/necess...
[uncategorized] ~611-~611: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ... for the dataloaders. For more advanced users see [torch.utils.data.Dataloader
](htt...
[uncategorized] ~629-~629: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... num_workers: 4 ``` ##logging
: This section sets up logging for the tr...
[uncategorized] ~638-~638: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...que in the project, and if you delete a run you can't reuse the ID. *project
: (`...
[grammar] ~648-~648: Using ‘couple’ without ‘of’ is considered to be informal. (PLENTY_OF_NOUNS)
Context: ... args. ### Examples: Here we provide a couple examples for different available loggers #### [`...
[uncategorized] ~667-~667: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...dule-lightning.pytorch.loggers.csv_logs): ```YAML ... logging: save_dir: "./l...
[uncategorized] ~682-~682: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...s early stopping for training runs. > Below we provide descriptions of the argument...
[style] ~682-~682: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Context: ... see `lightning.callbacks.EarlyStopping for available arguments for more fine ...
[misspelling] ~682-~682: This word is normally spelled with a hyphen. (EN_COMPOUNDS_FINE_GRAINED)
Context: ...pping) for available arguments for more fine grained control *monitor
(str
): quantity ...
[uncategorized] ~711-~711: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...eckpointing during training *monitor
: A list of metrics to save best models f...
[misspelling] ~715-~715: This word is normally spelled with a hyphen. (EN_COMPOUNDS_FINE_GRAINED)
Context: ...ound useful for checkpointing. For more fine grained control see [`lightning.callbacks.Model...
[uncategorized] ~715-~715: Possible missing comma found. (AI_HYDRA_LEO_MISSING_COMMA)
Context: ...or checkpointing. For more fine grained control see [`lightning.callbacks.ModelCheckpoi...
[style] ~715-~715: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE)
Context: ...ting. For more fine grained control seelightning.callbacks.ModelCheckpoint
for available checkpointing params and...
[typographical] ~717-~717: Consider adding a comma. (IF_THEN_COMMA)
Context: ...ectory to save the models. If left empty then we first try to save to `./models/[GROU...
[typographical] ~717-~717: Do not use a colon (:) before a series that is introduced by a preposition (‘to’). Remove the colon or add a noun or a noun phrase after the preposition. (RP_COLON)
Context: ...ogger iswandb
otherwise we just save to./models
*save_last
: (bool
): WhenTrue
, saves a last.ckp...
[style] ~718-~718: To form a complete sentence, be sure to include a subject. (MISSING_IT_THERE)
Context: ... whenever a checkpoint file gets saved. Can be set to 'link' on a local filesystem ...
[misspelling] ~738-~738: This word is normally spelled with a hyphen. (EN_COMPOUNDS_FINE_GRAINED)
Context: ...ch/stable/common/trainer.html) for more fine grained control and how thetrainer
works in ...
[style] ~742-~742: To form a complete sentence, be sure to include a subject. (MISSING_IT_THERE)
Context: ...t]|
str|
int)
The devices to use. Can be set to: * a positive number (`in...
[typographical] ~742-~742: Do not use a colon (:) before a series that is introduced by a preposition (‘to’). Remove the colon or add a noun or a noun phrase after the preposition. (RP_COLON)
Context: ...|int
)The devices to use. Can be set to: * a positive number (
int|
str`)...
[style] ~777-~777: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...a before training *enable
: (bool
) whether or not to view a batch *num_frames
: (int
)...
[style] ~779-~779: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...ch to visualize *no_train
: (bool
) whether or not to train after visualization is complet...
Ruff
dreem/io/track.py
17-17: Undefined name
Instance
(F821)
46-46: Undefined name
Instances
(F821)
64-64: Undefined name
Frame
(F821)
82-82: Undefined name
Instance
(F821)
82-82: Undefined name
Instance
(F821)dreem/inference/track.py
18-18: Undefined name
dreem
(F821)
35-35: Loop control variable
i
not used within loop body (B007)Rename unused
i
to_i
102-102: Use
key in dict
instead ofkey in dict.keys()
(SIM118)Remove
.keys()
120-120: f-string without any placeholders (F541)
Remove extraneous
f
prefixdreem/models/visual_encoder.py
3-3:
typing.Tuple
imported but unused (F401)Remove unused import:
typing.Tuple
dreem/models/global_tracking_transformer.py
81-81: Undefined name
Instance
(F821)
81-81: Undefined name
Instance
(F821)
82-82: Undefined name
AssociationMatrix
(F821)
103-103: Undefined name
Instance
(F821)dreem/datasets/microscopy_dataset.py
86-86: Do not assign a
lambda
expression, use adef
(E731)Rewrite
parser
as adef
173-174: Use a single
if
statement instead of nestedif
statements (SIM102)Combine
if
statements usingand
dreem/models/model_utils.py
3-3:
typing.Tuple
imported but unused (F401)Remove unused import:
typing.Tuple
8-8: Undefined name
dreem
(F821)
19-19: Loop control variable
i
not used within loop body (B007)Rename unused
i
to_i
32-32: Undefined name
dreem
(F821)
33-33: Undefined name
dreem
(F821)dreem/inference/boxes.py
129-129: Use f-string instead of
format
call (UP032)Convert to f-string
dreem/datasets/cell_tracking_dataset.py
133-136: Use ternary operator
gt_list = self.gt_list[label_idx] if self.gt_list is not None else None
instead ofif
-else
-block (SIM108)Replace
if
-else
-block withgt_list = self.gt_list[label_idx] if self.gt_list is not None else None
dreem/inference/metrics.py
13-13: Undefined name
dreem
(F821)
104-104: Undefined name
dreem
(F821)
139-139: Loop control variable
fidx
not used within loop body (B007)Rename unused
fidx
to_fidx
232-232: Loop control variable
metric_name
not used within loop body (B007)Rename unused
metric_name
to_metric_name
dreem/inference/track_queue.py
195-198: Use ternary operator
vid_name = frame.video if isinstance(frame.video, str) else frame.video.filename
instead ofif
-else
-block (SIM108)Replace
if
-else
-block withvid_name = frame.video if isinstance(frame.video, str) else frame.video.filename
207-207: Use
key not in dict
instead ofkey not in dict.keys()
(SIM118)Remove
.keys()
214-214: No explicit
stacklevel
keyword argument found (B028)
249-249: Loop control variable
track
not used within loop body (B007)Rename unused
track
to_track
251-251: Use
key not in dict
instead ofkey not in dict.keys()
(SIM118)Remove
.keys()
289-289: No explicit
stacklevel
keyword argument found (B028)
302-302: No explicit
stacklevel
keyword argument found (B028)dreem/io/visualize.py
282-282: Loop control variable
idx
not used within loop body (B007)Rename unused
idx
to_idx
dreem/io/association_matrix.py
38-41: Avoid extraneous parentheses (UP034)
Remove extraneous parentheses
57-60: Avoid extraneous parentheses (UP034)
Remove extraneous parentheses
114-114: f-string without any placeholders (F541)
Remove extraneous
f
prefix
140-140: f-string without any placeholders (F541)
Remove extraneous
f
prefix
205-205: Loop control variable
row_track
not used within loop body (B007)Rename unused
row_track
to_row_track
206-206: Loop control variable
col_track
not used within loop body (B007)Rename unused
col_track
to_col_track
dreem/datasets/sleap_dataset.py
9-9:
warnings
imported but unused (F401)Remove unused import:
warnings
149-149: Loop control variable
i
not used within loop body (B007)Rename unused
i
to_i
dreem/io/config.py
56-56: Undefined name
params_cfg
(F821)
82-82: Undefined name
GlobalTrackingTransformer
(F821)
94-94: Undefined name
GTRRunner
(F821)
110-110: Undefined name
GTRRunner
(F821)
167-167: Undefined name
SleapDataset
(F821)
167-167: Undefined name
MicroscopyDataset
(F821)
167-167: Undefined name
CellTrackingDataset
(F821)
231-231: Undefined name
SleapDataset
(F821)
231-231: Undefined name
MicroscopyDataset
(F821)
231-231: Undefined name
CellTrackingDataset
(F821)
302-302: Undefined name
dreem
(F821)
397-401: Use ternary operator
trainer_params = self.cfg.trainer if "trainer" in self.cfg else {}
instead ofif
-else
-block (SIM108)Replace
if
-else
-block withtrainer_params = self.cfg.trainer if "trainer" in self.cfg else {}
dreem/datasets/data_utils.py
7-7:
cElementTree
is deprecated, useElementTree
(UP023)Replace with
ElementTree
267-267: Use context handler for opening files (SIM115)
388-391: Use
contextlib.suppress(Exception)
instead oftry
-except
-pass
(SIM105)Replace with
contextlib.suppress(Exception)
390-390: Do not use bare
except
(E722)dreem/io/frame.py
57-57: Undefined name
Instance
(F821)
58-58: Undefined name
AssociationMatrix
(F821)
299-299: Undefined name
Instance
(F821)
308-308: Undefined name
Instance
(F821)
338-338: Undefined name
AssociationMatrix
(F821)
357-357: Undefined name
AssociationMatrix
(F821)
553-553: Use
key in dict
instead ofkey in dict.keys()
(SIM118)Remove
.keys()
dreem/inference/tracker.py
124-124: No explicit
stacklevel
keyword argument found (B028)
124-124: f-string without any placeholders (F541)
Remove extraneous
f
prefix
152-152: No explicit
stacklevel
keyword argument found (B028)
160-160: No explicit
stacklevel
keyword argument found (B028)
169-169: No explicit
stacklevel
keyword argument found (B028)
174-174: Loop control variable
i
not used within loop body (B007)Rename unused
i
to_i
178-178: Loop control variable
i
not used within loop body (B007)Rename unused
i
to_i
180-180: Undefined name
curr_track
(F821)
180-180: Local variable
curr_track
is assigned to but never used (F841)
455-455: Avoid extraneous parentheses (UP034)
Remove extraneous parentheses
dreem/models/transformer.py
144-144: Undefined name
dreem
(F821)
145-145: Undefined name
dreem
(F821)dreem/io/instance.py
93-93: Undefined name
Frame
(F821)
212-212: Do not use mutable data structures for argument defaults (B006)
Replace with
None
; initialize within function
243-243: Within an
except
clause, raise exceptions withraise ... from err
orraise ... from None
to distinguish them from errors in exception handling (B904)
290-293: Return the condition
not self._gt_track_id.shape[0] == 0
directly (SIM103)Replace with
return not self._gt_track_id.shape[0] == 0
322-325: Return the negated condition directly (SIM103)
Inline condition
362-365: Return the condition
not self._bbox.shape[1] == 0
directly (SIM103)Replace with
return not self._bbox.shape[1] == 0
432-435: Return the condition
not self._crop.shape[-1] == 0
directly (SIM103)Replace with
return not self._crop.shape[-1] == 0
470-473: Return the condition
not self._features.shape[-1] == 0
directly (SIM103)Replace with
return not self._features.shape[-1] == 0
520-520: Undefined name
Frame
(F821)
529-529: Undefined name
Frame
(F821)
Additional comments not posted (17)
dreem/models/visual_encoder.py (1)
60-60
: Well-implemented method handling different backends. Good use of error handling to guide the user.dreem/models/global_tracking_transformer.py (1)
49-55
: Excellent addition of detailed documentation forembedding_meta
. This enhances clarity and usability.dreem/inference/post_processing.py (2)
94-94
: Good practice to specify return types for better clarity and type checking.
129-129
: Specifying return types enhances clarity and aids in type checking. Good addition.dreem/datasets/base_dataset.py (2)
125-125
: Specifying return types is a good practice. Well done on maintaining consistency.
141-141
: Consistent use of return type specification across methods enhances clarity and maintainability.dreem/datasets/microscopy_dataset.py (2)
109-109
: LGTM! The methodget_indices
correctly returns a tuple as expected.
Line range hint
173-174
: Combine nestedif
statements for clarity and performance.
[REFACTOR_SUGGESTion]- if len(img.shape) == 2: - img = img.unsqueeze(0) - elif len(img.shape) == 3: - if img.shape[2] == 3: - img = img.T # todo: check for edge cases + if len(img.shape) == 2: + img = img.unsqueeze(0) + elif len(img.shape) == 3 and img.shape[2] == 3: + img = img.T # todo: check for edge casesdreem/models/model_utils.py (3)
173-173
: Ensure the logger type is correctly handled, including case sensitivity.Verification successful
The
init_logger
function indreem/models/model_utils.py
checks if thelogger_type
is in the list of valid loggers, which ensures that the logger type is handled correctly. The usage indreem/io/config.py
passes thelogger_params
correctly toinit_logger
.
dreem/models/model_utils.py
:def init_logger(logger_params: dict, config: dict = None) -> loggers.Logger: """Initialize logger based on config parameters. Allows more flexibility in choosing which logger to use. Args: logger_params: logger hyperparameters config: rest of hyperparameters to log (mostly used for WandB) Returns: logger: A logger with specified params (or None). """ logger_type = logger_params.pop("logger_type", None) valid_loggers = [ "CSVLogger", "TensorBoardLogger", "WandbLogger", ] if logger_type in valid_loggers:
dreem/io/config.py
:from dreem.models.model_utils import init_logger logger_params = OmegaConf.to_container(self.cfg.logging, resolve=True) return init_logger( logger_params, OmegaConf.to_container(self.cfg, resolve=True) )The logger type is correctly handled in the
init_logger
function.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that the logger type is handled correctly in all cases. # Test: Search for usage of `init_logger`. Expect: Correct handling of logger type. rg --type python $'init_logger'Length of output: 61
Script:
#!/bin/bash # Description: Verify that the logger type is handled correctly in all cases. # Step 1: Search for the definition of `init_logger`. rg 'def init_logger' # Step 2: Search for all usages of `init_logger` in the codebase. rg 'init_logger'Length of output: 372
Script:
#!/bin/bash # Description: Extract the implementation of `init_logger` and its usage to verify logger type handling. # Step 1: Extract the implementation of `init_logger`. rg -A 20 'def init_logger' dreem/models/model_utils.py # Step 2: Extract the usage of `init_logger` in `dreem/io/config.py`. rg -A 10 'init_logger' dreem/io/config.pyLength of output: 1223
96-96
: Ensure the optimizer name is correctly handled, including case sensitivity.
133-135
: Ensure the scheduler name is correctly handled, including case sensitivity.Verification successful
The YAML configuration files contain scheduler configurations with a "name" key, which indicates that the scheduler names are handled correctly. This confirms that the
init_scheduler
function should correctly initialize the scheduler based on the provided configuration.
dreem/training/configs/base.yaml
andtests/configs/base.yaml
both include ascheduler
section with a "name" key, ensuring that the scheduler name is specified and can be correctly interpreted by theinit_scheduler
function.No issues were found with the handling of scheduler names in the provided configurations.
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that the scheduler name is handled correctly in all cases. # Test: Search for usage of `init_scheduler`. Expect: Correct handling of scheduler name. rg --type python $'init_scheduler'Length of output: 64
Script:
#!/bin/bash # Description: Verify that the scheduler name is handled correctly in all cases. # Test: Search for usage of `init_scheduler`. Expect: Correct handling of scheduler name. rg --type py 'init_scheduler'Length of output: 429
Script:
#!/bin/bash # Extract relevant lines from files where `init_scheduler` is used. # Extract lines around the usage in `dreem/models/gtr_runner.py` rg -A 5 -B 5 'init_scheduler' dreem/models/gtr_runner.py # Extract lines around the usage in `dreem/io/config.py` rg -A 5 -B 5 'init_scheduler' dreem/io/config.pyLength of output: 1295
Script:
#!/bin/bash # Search for definitions and usages of `self.scheduler_cfg` and `lr_scheduler_params`. # Search for `self.scheduler_cfg` in `dreem/models/gtr_runner.py` rg 'self.scheduler_cfg' dreem/models/gtr_runner.py # Search for `lr_scheduler_params` in `dreem/io/config.py` rg 'lr_scheduler_params' dreem/io/config.pyLength of output: 357
Script:
#!/bin/bash # Search for definitions and usages of `scheduler_cfg` and `self.cfg.scheduler`. # Search for `scheduler_cfg` in the repository rg 'scheduler_cfg' # Search for `self.cfg.scheduler` in the repository rg 'self.cfg.scheduler'Length of output: 786
Script:
#!/bin/bash # Extract the content of `self.cfg.scheduler` in `dreem/io/config.py`. # Extract lines around the usage of `self.cfg.scheduler` in `dreem/io/config.py` rg -A 5 -B 5 'self.cfg.scheduler' dreem/io/config.pyLength of output: 851
Script:
#!/bin/bash # Search for the definition and structure of `self.cfg` in `dreem/io/config.py`. # Search for `self.cfg` in `dreem/io/config.py` rg 'self.cfg' dreem/io/config.pyLength of output: 1708
Script:
#!/bin/bash # Search for the definitions of `base_cfg` and `params_cfg` in `dreem/io/config.py`. # Search for `base_cfg` in `dreem/io/config.py` rg 'base_cfg' dreem/io/config.py # Search for `params_cfg` in `dreem/io/config.py` rg 'params_cfg' dreem/io/config.pyLength of output: 1033
Script:
#!/bin/bash # Search for the YAML files and extract their content. # Find YAML files in the repository fd --type f --extension yaml # Extract content of the YAML files for file in $(fd --type f --extension yaml); do echo "Content of $file:" cat "$file" echo "" doneLength of output: 8839
dreem/datasets/cell_tracking_dataset.py (1)
108-108
: LGTM! The methodget_indices
correctly returns a tuple as expected.dreem/io/frame.py (2)
Line range hint
299-299
: Repeated issue: Undefined name 'Instance'.This issue has been flagged previously. Ensure that
Instance
is correctly imported to resolve all occurrences.Also applies to: 308-308
Line range hint
338-338
: Repeated issue: Undefined name 'AssociationMatrix'.This issue has been flagged previously. Ensure that
AssociationMatrix
is correctly imported to resolve all occurrences.Also applies to: 357-357
docs/usage.md (1)
219-220
: Use "an" instead of "a" before words that start with a vowel sound.- 1. a `ckpt_path` 2. a `out_dir` + 1. an `ckpt_path` 2. an `out_dir`Likely invalid or redundant comment.
Tools
LanguageTool
[misspelling] ~219-~219: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...et up a config file that specifies 1. ackpt_path
2. aout_dir
3. a `Tracke...
[misspelling] ~220-~220: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...le that specifies 1. ackpt_path
2. aout_dir
3. aTracker
config 4. a `d...docs/configs/training.md (2)
187-195
: Verify the backend compatibility and model availability.Ensure that all models specified in the documentation are available in the respective libraries (
timm
andtorchvision
). This script lists all available models, which should be cross-referenced with the documentation.Tools
LanguageTool
[style] ~194-~194: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...i-anchor crops *pretrained
: (bool
) Whether or not to use a pretrained backbone or initial...
359-372
: Check for potential data races in tracker configurations.Given the complexity of tracker configurations, especially in potentially multi-threaded environments, verify that the implementation handles data races or state inconsistencies.
Tools
LanguageTool
[uncategorized] ~362-~362: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...m/inference/tracker.md) *window_size
: the size of the window used during slid...
[uncategorized] ~363-~363: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ing sliding inference. *use_vis_feats
: Whether or not to use visual feature ex...
[style] ~363-~363: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...g sliding inference. *use_vis_feats
: Whether or not to use visual feature extractor. * `ove...
[uncategorized] ~364-~364: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...al feature extractor. *overlap_thresh
: the trajectory overlap threshold to be ...
[uncategorized] ~365-~365: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... be used for assignment. *mult_thresh
: Whether or not to use weight threshold....
[style] ~365-~365: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...e used for assignment. *mult_thresh
: Whether or not to use weight threshold. *decay_time
...
[uncategorized] ~366-~366: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ... to use weight threshold. *decay_time
: weight fordecay_time
postprocessing....
[uncategorized] ~367-~367: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...fordecay_time
postprocessing. *iou
: Either{None, '', "mult" or "max"}
. W...
[uncategorized] ~368-~368: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...max iou reweighting. *max_center_dist
: distance threshold for filtering trajec...
[uncategorized] ~369-~369: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ry score matrix. *persistent_tracking
: whether to keep a buffer across chunks ...
[uncategorized] ~370-~370: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...buffer across chunks or not. *max_gap
: the max number of frames a trajectory c...
[uncategorized] ~371-~371: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...ssing before termination. *max_tracks
: the maximum number of tracks that can b...
Similar to training, we need to set up a config file that specifies | ||
1. a `ckpt_path` | ||
2. a `out_dir` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct article usage.
- a `out_dir`
+ an `out_dir`
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
2. a `out_dir` | |
2. an `out_dir` |
Tools
LanguageTool
[misspelling] ~252-~252: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’. (EN_A_VS_AN)
Context: ...ile that specifies 1. ackpt_path
2. aout_dir
3. aTracker
config 4. a `d...
|
||
##### Step 1.1: Get Initial labels | ||
To generate your initial labels we recommend a couple methods. | ||
- For animal pose-estimation, we highly recommend heading over to [SLEAP](https://sleap.ai) and running through their work flow. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct the term "workflow" for accuracy.
- running through their work flow.
+ running through their workflow.
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
- For animal pose-estimation, we highly recommend heading over to [SLEAP](https://sleap.ai) and running through their work flow. | |
- For animal pose-estimation, we highly recommend heading over to [SLEAP](https://sleap.ai) and running through their workflow. |
Tools
LanguageTool
[uncategorized] ~85-~85: Write this as one word if you mean the noun “workflow”. (WORK_COMPOUNDS)
Context: ...s://sleap.ai) and running through their work flow. - For microscopy tracking, check out...
Markdownlint
85-85: Expected: 0; Actual: 1 (MD007, ul-indent)
Unordered list indentation
85-85: Expected: 0 or 2; Actual: 1 (MD009, no-trailing-spaces)
Trailing spaces
85-85: null (MD032, blanks-around-lists)
Lists should be surrounded by blank lines
|
||
## Usage | ||
|
||
Here we describe a basic workflow from setting up data thru training and running inference. Regardless if you're only interested in running inference, we recommend at least skimming thru the entire tutorial as there may be useful information that applies to both training and inference! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Replace informal language for professionalism.
- Here we describe a basic workflow from setting up data thru training and running inference.
+ Here we describe a basic workflow from setting up data through training and running inference.
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
Here we describe a basic workflow from setting up data thru training and running inference. Regardless if you're only interested in running inference, we recommend at least skimming thru the entire tutorial as there may be useful information that applies to both training and inference! | |
Here we describe a basic workflow from setting up data through training and running inference. Regardless if you're only interested in running inference, we recommend at least skimming thru the entire tutorial as there may be useful information that applies to both training and inference! |
Tools
LanguageTool
[style] ~42-~42: The word ‘thru’ is informal. Consider replacing it with “through”. (THRU)
Context: ...e a basic workflow from setting up data thru training and running inference. Regardl...
[style] ~42-~42: The word ‘thru’ is informal. Consider replacing it with “through”. (THRU)
Context: ...ference, we recommend at least skimming thru the entire tutorial as there may be use...
- For animal pose-estimation, we highly recommend heading over to [SLEAP](https://sleap.ai) and running through their work flow. | ||
- For microscopy tracking, check out [TrackMate](https://imagej.net/plugins/trackmate/). | ||
|
||
This is because these methods will handle both the detection and tracking steps together. Furthermore, these are currently the two main label formats we support in our data pipelines for arbitrary [animal](dreem/datasets/sleap_dataset.py) and [microscopy](dreem/datasets/microscopy_dataset.py) datasets. If you'd like to use a different method, (e.g DeepLabCut or ilastik etc), the easiest way to make your data compatible with `dreem` is to convert your labels to a `.slp` file and your video to an [`imageio`-supported]((https://imageio.readthedocs.io/en/v2.4.1/formats.html)) video format. See the next section for more information on how to do this. Alternatively, you can write a custom dataloader but that will take significantly more overhead. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct abbreviation usage and punctuation.
- you'd like to use a different method, (e.g DeepLabCut or ilastik etc), the easiest
+ you'd like to use a different method (e.g., DeepLabCut or ilastik, etc.), the easiest
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
This is because these methods will handle both the detection and tracking steps together. Furthermore, these are currently the two main label formats we support in our data pipelines for arbitrary [animal](dreem/datasets/sleap_dataset.py) and [microscopy](dreem/datasets/microscopy_dataset.py) datasets. If you'd like to use a different method, (e.g DeepLabCut or ilastik etc), the easiest way to make your data compatible with `dreem` is to convert your labels to a `.slp` file and your video to an [`imageio`-supported]((https://imageio.readthedocs.io/en/v2.4.1/formats.html)) video format. See the next section for more information on how to do this. Alternatively, you can write a custom dataloader but that will take significantly more overhead. | |
This is because these methods will handle both the detection and tracking steps together. Furthermore, these are currently the two main label formats we support in our data pipelines for arbitrary [animal](dreem/datasets/sleap_dataset.py) and [microscopy](dreem/datasets/microscopy_dataset.py) datasets. If you'd like to use a different method (e.g., DeepLabCut or ilastik, etc.), the easiest way to make your data compatible with `dreem` is to convert your labels to a `.slp` file and your video to an [`imageio`-supported]((https://imageio.readthedocs.io/en/v2.4.1/formats.html)) video format. See the next section for more information on how to do this. Alternatively, you can write a custom dataloader but that will take significantly more overhead. |
Tools
LanguageTool
[uncategorized] ~88-~88: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ... you'd like to use a different method, (e.g DeepLabCut or ilastik etc), the easiest...
[style] ~88-~88: In American English, abbreviations like “etc.” require a period. (ETC_PERIOD)
Context: ...rent method, (e.g DeepLabCut or ilastik etc), the easiest way to make your data com...
[uncategorized] ~88-~88: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short). (COMMA_COMPOUND_SENTENCE_2)
Context: ...ively, you can write a custom dataloader but that will take significantly more overh...
We recommend using the [`sleap-label` gui](https://sleap.ai/guides/gui.html) for [proofreading](https://sleap.ai/guides/proofreading.html#id1). This is because SLEAP's in-built gui provides useful. functionality for visualizing detections, moving them, and reassigning tracks. It also provides some nice heuristics for flagging where switches may have occured. | ||
|
||
###### Converting data to a SLEAP compatible format. | ||
In order to use the SLEAP gui you'll need to have your labels and videos in a SLEAP comptabile format. Check out [the sleap-io docs](https://io.sleap.ai/latest/formats/) for available formats. The easiest way to ensure your labels are compatible with sleap is to convert them to a `.slp` file. For animal tracking, if you used SLEAP, this is already how SLEAP saves your labesl so you can start proofreading right away. Otherwise if you used a different system (e.g DeepLabCut) check out [`sleap.io.convert`](https://sleap.ai/api/sleap.io.convert.html#module-sleap.io.convert) for available converters. With microscopy, we highly recommend starting out with TrackMate and then proofread in SLEAP's gui. Here is [a converter from trackmate's output to a `.slp`](https://gist.github.com/aaprasad/5243be0785a40e9dafa1697ce2258e3e) file. In general, you can use [`sleap-io`](https://io.sleap.ai/latest/) to write a custom converter to `.slp` if you'd like to use the sleap-gui for proofreading. Once you've ensured that your labels files have no identity switches and your detections are as good as you're willing to make them, they're ready to use for training. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct abbreviation and punctuation.
- Otherwise if you used a different system (e.g DeepLabCut) check out
+ Otherwise, if you used a different system (e.g., DeepLabCut), check out
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
In order to use the SLEAP gui you'll need to have your labels and videos in a SLEAP comptabile format. Check out [the sleap-io docs](https://io.sleap.ai/latest/formats/) for available formats. The easiest way to ensure your labels are compatible with sleap is to convert them to a `.slp` file. For animal tracking, if you used SLEAP, this is already how SLEAP saves your labesl so you can start proofreading right away. Otherwise if you used a different system (e.g DeepLabCut) check out [`sleap.io.convert`](https://sleap.ai/api/sleap.io.convert.html#module-sleap.io.convert) for available converters. With microscopy, we highly recommend starting out with TrackMate and then proofread in SLEAP's gui. Here is [a converter from trackmate's output to a `.slp`](https://gist.github.com/aaprasad/5243be0785a40e9dafa1697ce2258e3e) file. In general, you can use [`sleap-io`](https://io.sleap.ai/latest/) to write a custom converter to `.slp` if you'd like to use the sleap-gui for proofreading. Once you've ensured that your labels files have no identity switches and your detections are as good as you're willing to make them, they're ready to use for training. | |
In order to use the SLEAP gui you'll need to have your labels and videos in a SLEAP comptabile format. Check out [the sleap-io docs](https://io.sleap.ai/latest/formats/) for available formats. The easiest way to ensure your labels are compatible with sleap is to convert them to a `.slp` file. For animal tracking, if you used SLEAP, this is already how SLEAP saves your labesl so you can start proofreading right away. Otherwise, if you used a different system (e.g., DeepLabCut) check out [`sleap.io.convert`](https://sleap.ai/api/sleap.io.convert.html#module-sleap.io.convert) for available converters. With microscopy, we highly recommend starting out with TrackMate and then proofread in SLEAP's gui. Here is [a converter from trackmate's output to a `.slp`](https://gist.github.com/aaprasad/5243be0785a40e9dafa1697ce2258e3e) file. In general, you can use [`sleap-io`](https://io.sleap.ai/latest/) to write a custom converter to `.slp` if you'd like to use the sleap-gui for proofreading. Once you've ensured that your labels files have no identity switches and your detections are as good as you're willing to make them, they're ready to use for training. |
Tools
LanguageTool
[uncategorized] ~100-~100: A comma may be missing after the conjunctive/linking adverb ‘Otherwise’. (SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)
Context: ... you can start proofreading right away. Otherwise if you used a different system (e.g Dee...
[uncategorized] ~100-~100: The abbreviation “e.g.” (= for example) requires two periods. (E_G)
Context: ...herwise if you used a different system (e.g DeepLabCut) check out [`sleap.io.conver...
"""Retrieve label and frame indices given batch index. | ||
|
||
Args: | ||
idx: the index of the batch. | ||
""" | ||
return self.label_idx[idx], self.chunked_frame_idx[idx] | ||
|
||
def get_instances(self, label_idx: List[int], frame_idx: List[int]) -> list[dict]: | ||
def get_instances(self, label_idx: List[int], frame_idx: List[int]) -> list[Frame]: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enhance error handling in get_instances
.
Add more robust error handling for cases where data cannot be read or processed correctly, such as when frames cannot be read from the video.
@@ -449,7 +449,7 @@ def close(self): | |||
self.file.close() | |||
|
|||
|
|||
def build_augmentations(augmentations: dict): | |||
def build_augmentations(augmentations: dict) -> A.Compose: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Validate augmentation parameters in build_augmentations
.
Ensure that the augmentation parameters are valid and handle cases where invalid parameters are provided to prevent runtime errors.
#### `augmentations`: | ||
|
||
This subsection contains params for albumentations. See [`albumentations`](https://albumentations.ai) for available visual augmentations. Other available augmentations include `NodeDropout` and `InstanceDropout`. Keys must match augmentation class name exactly and contain subsections with parameters for the augmentation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The description of augmentations
could be enhanced by specifying examples of NodeDropout
and InstanceDropout
.
Would you like me to add examples for NodeDropout
and InstanceDropout
in the documentation?
Tools
LanguageTool
[uncategorized] ~82-~82: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...... ... ... ``` ####augmentations
: This subsection contains params for al...
Markdownlint
82-82: Expected: 1; Actual: 0; Above (MD022, blanks-around-headings)
Headings should be surrounded by blank lines
82-82: Punctuation: ':' (MD026, no-trailing-punctuation)
Trailing punctuation in heading
* a string indicating a single node to center crops around | ||
* a list of skeleton node names to be used as the center of crops | ||
* an int indicating the number of anchors to randomly select |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix indentation issues in the unordered list to maintain consistency and readability.
- * a string indicating a single node to center crops around
- * a list of skeleton node names to be used as the center of crops
- * an int indicating the number of anchors to randomly select
+ * a string indicating a single node to center crops around
+ * a list of skeleton node names to be used as the center of crops
+ * an int indicating the number of anchors to randomly select
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
* a string indicating a single node to center crops around | |
* a list of skeleton node names to be used as the center of crops | |
* an int indicating the number of anchors to randomly select | |
* a string indicating a single node to center crops around | |
* a list of skeleton node names to be used as the center of crops | |
* an int indicating the number of anchors to randomly select |
Tools
Markdownlint
101-101: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
102-102: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
103-103: Expected: 2; Actual: 4 (MD007, ul-indent)
Unordered list indentation
* `padding`: An `int` representing the amount of padding to be added to each side of the bounding box size | ||
* `crop_size`: (`int`|`tuple`) the size of the bounding box around which a crop will form. | ||
* `chunk`: Whether or not to chunk videos into smaller clips to feed to model |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tip
Codebase Verification
The search results indicate that the chunk
parameter is indeed implemented in various dataset modules, such as sleap_dataset.py
, microscopy_dataset.py
, cell_tracking_dataset.py
, and base_dataset.py
. The descriptions and usage of chunk
across these files suggest that it is used to determine whether to divide the dataset into smaller batches or chunks.
- Locations in the codebase:
dreem/datasets/sleap_dataset.py
dreem/datasets/microscopy_dataset.py
dreem/datasets/cell_tracking_dataset.py
dreem/datasets/base_dataset.py
The description in the documentation should be clear about this functionality, indicating that chunk
determines whether the dataset should be divided into smaller batches for processing.
Analysis chain
Ensure that the description of chunk
is clear about its functionality.
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Verify the implementation of chunking in the dataset.
# Test: Search for the chunk implementation in the dataset module.
rg --type python $'chunk' src/dreem/datasets
Length of output: 74
Script:
#!/bin/bash
# Description: Verify the implementation of chunking in the dataset.
# Test: Search for the chunk implementation in the dataset module.
rg --type py 'chunk' src/dreem/datasets
Length of output: 98
Script:
#!/bin/bash
# Description: Locate the correct directory path for the dataset module and verify the implementation of chunking.
# Step 1: Locate the dataset module directory.
dataset_dir=$(fd datasets | head -n 1)
# Step 2: Verify the implementation of chunking in the located dataset module directory.
if [ -n "$dataset_dir" ]; then
rg 'chunk' "$dataset_dir"
else
echo "Dataset module directory not found."
fi
Length of output: 6059
Tools
LanguageTool
[uncategorized] ~53-~53: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...asets/base_dataset.md) args *padding
: Anint
representing the amount of pad...
[uncategorized] ~55-~55: Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION)
Context: ...around which a crop will form. *chunk
: Whether or not to chunk videos into sma...
[style] ~55-~55: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER)
Context: ...ound which a crop will form. *chunk
: Whether or not to chunk videos into smaller clips to f...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Outside diff range and nitpick comments (1)
dreem/io/visualize.py (1)
Line range hint
282-282
: Rename unused loop control variableidx
to_idx
to indicate it's intentionally unused.- for idx, (ds_name, data) in enumerate([(save_path, annotated_frames)]): + for _idx, (ds_name, data) in enumerate([(save_path, annotated_frames)]):
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (1)
- dreem/io/visualize.py (2 hunks)
Additional context used
Ruff
dreem/io/visualize.py
282-282: Loop control variable
idx
not used within loop body (B007)Rename unused
idx
to_idx
Additional comments not posted (4)
dreem/io/visualize.py (4)
319-324
: Enhance error handling by logging exception details.
[REFACTOR_SUGGESTion]- print(e) + import logging + logging.error("Failed to annotate video: %s", str(e))
319-324
: The integration ofannotate_video
in the main function is handled well.
319-324
: Thesave_vid
function is implemented correctly and efficiently.
319-324
: The utility functionscolor
andbold
are correctly implemented and serve their intended purpose.
video: "imageio.core.format.Reader", | ||
labels: pd.DataFrame, | ||
key: str, | ||
color_palette=palette, | ||
color_palette: list = palette, | ||
trails: int = 2, | ||
boxes: int = (64, 64), | ||
names: bool = True, | ||
track_scores=0.5, | ||
centroids: int = 4, | ||
poses=False, | ||
poses: bool = False, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add type annotations for new parameters to enhance clarity and maintain consistency.
- track_scores=0.5,
- centroids: int = 4,
+ track_scores: float = 0.5,
+ centroids: int = 4,
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
video: "imageio.core.format.Reader", | |
labels: pd.DataFrame, | |
key: str, | |
color_palette=palette, | |
color_palette: list = palette, | |
trails: int = 2, | |
boxes: int = (64, 64), | |
names: bool = True, | |
track_scores=0.5, | |
centroids: int = 4, | |
poses=False, | |
poses: bool = False, | |
video: "imageio.core.format.Reader", | |
labels: pd.DataFrame, | |
key: str, | |
color_palette: list = palette, | |
trails: int = 2, | |
boxes: int = (64, 64), | |
names: bool = True, | |
track_scores: float = 0.5, | |
centroids: int = 4, | |
poses: bool = False, |
Here we address #54 by adding tutorials, and more documentation
Summary by CodeRabbit
Documentation
GlobalTrackingTransformer
andGTRRunner
.New Features
Style
Bug Fixes
Refactor