Skip to content

create_pretrained_project not creating all necessary subdirectories #2888

@elliekogan

Description

@elliekogan

Is there an existing issue for this?

  • I have searched the existing issues

Bug description

I am trying to create a pretrained project that I can save as a CSV using topviewmouse. Here is my code and error

deeplabcut.create_pretrained_project(
    "ellie",
    "ellie",
    ["/Users/elliekogan/Desktop/drive-download-20250217T155450Z-001/videos"],
    model= "superanimal_topviewmouse",
    working_directory= "/Users/elliekogan/Desktop/drive-download-20250217T155450Z-001",
    copy_videos= True,
    videotype= ".avi",
    analyzevideo= True,
    filtered= True,
    createlabeledvideo= True,
    trainFraction= None
)


---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
Cell In[11], line 1
----> 1 deeplabcut.create_pretrained_project(
      2     "ellie",
      3     "ellie",
      4     ["/Users/elliekogan/Desktop/drive-download-20250217T155450Z-001/videos"],
      5     model= "superanimal_topviewmouse",
      6     working_directory= "/Users/elliekogan/Desktop/drive-download-20250217T155450Z-001",
      7     copy_videos= True,
      8     videotype= ".avi",
      9     analyzevideo= True,
     10     filtered= True,
     11     createlabeledvideo= True,
     12     trainFraction= None
     13 )

File ~/miniconda3/envs/DEEPLABCUT/lib/python3.10/site-packages/deeplabcut/create_project/modelzoo.py:306, in create_pretrained_project(project, experimenter, videos, model, working_directory, copy_videos, videotype, analyzevideo, filtered, createlabeledvideo, trainFraction)
    304 if analyzevideo == True:
    305     print("Analyzing video...")
--> 306     deeplabcut.analyze_videos(cfg, [video_dir], videotype, save_as_csv=True)
    308 if createlabeledvideo == True:
    309     if filtered:

File ~/miniconda3/envs/DEEPLABCUT/lib/python3.10/site-packages/deeplabcut/compat.py:836, in analyze_videos(config, videos, videotype, shuffle, trainingsetindex, gputouse, save_as_csv, in_random_order, destfolder, batchsize, cropping, TFGPUinference, dynamic, modelprefix, robust_nframes, allow_growth, use_shelve, auto_track, n_tracks, calibrate, identity_only, use_openvino, engine, **torch_kwargs)
    627 """Makes prediction based on a trained network.
    628 
    629 The index of the trained network is specified by parameters in the config file
   (...)
    833     )
    834 """
    835 if engine is None:
--> 836     engine = get_shuffle_engine(
    837         _load_config(config),
    838         trainingsetindex=trainingsetindex,
    839         shuffle=shuffle,
    840         modelprefix=modelprefix,
    841     )
    843 if engine == Engine.TF:
    844     from deeplabcut.pose_estimation_tensorflow import analyze_videos

File ~/miniconda3/envs/DEEPLABCUT/lib/python3.10/site-packages/deeplabcut/generate_training_dataset/metadata.py:406, in get_shuffle_engine(cfg, trainingsetindex, shuffle, modelprefix)
    391 """
    392 Args:
    393     cfg: the config for the DeepLabCut project
   (...)
    403     doesn't exist
    404 """
    405 if not TrainingDatasetMetadata.path(cfg).exists():
--> 406     metadata = TrainingDatasetMetadata.create(cfg)
    407     metadata.save()
    409 metadata = TrainingDatasetMetadata.load(cfg)

File ~/miniconda3/envs/DEEPLABCUT/lib/python3.10/site-packages/deeplabcut/generate_training_dataset/metadata.py:293, in TrainingDatasetMetadata.create(config)
    290     cfg = config
    292 trainset_path = TrainingDatasetMetadata.path(cfg).parent
--> 293 shuffle_docs = [
    294     f
    295     for f in trainset_path.iterdir()
    296     if re.match(r"Documentation_data-.+shuffle[0-9]+\.pickle", f.name)
    297 ]
    299 prefix = cfg["Task"] + cfg["date"]
    300 shuffles = []

File ~/miniconda3/envs/DEEPLABCUT/lib/python3.10/site-packages/deeplabcut/generate_training_dataset/metadata.py:293, in <listcomp>(.0)
    290     cfg = config
    292 trainset_path = TrainingDatasetMetadata.path(cfg).parent
--> 293 shuffle_docs = [
    294     f
    295     for f in trainset_path.iterdir()
    296     if re.match(r"Documentation_data-.+shuffle[0-9]+\.pickle", f.name)
    297 ]
    299 prefix = cfg["Task"] + cfg["date"]
    300 shuffles = []

File ~/miniconda3/envs/DEEPLABCUT/lib/python3.10/pathlib.py:1017, in Path.iterdir(self)
   1013 def iterdir(self):
   1014     """Iterate over the files in this directory.  Does not yield any
   1015     result for the special paths '.' and '..'.
   1016     """
-> 1017     for name in self._accessor.listdir(self):
   1018         if name in {'.', '..'}:
   1019             # Yielding a path object for these makes little sense
   1020             continue

FileNotFoundError: [Errno 2] No such file or directory: '/Users/elliekogan/Desktop/drive-download-20250217T155450Z-001/ellie-ellie-2025-02-17/training-datasets/iteration-0/UnaugmentedDataSet_ellieFeb17'

Operating System

operating system: Mac OS M4 chip

DeepLabCut version

dlc version 3.0.0rc6...

DeepLabCut mode

single animal

Device type

gpu Mac Sequoia

Steps To Reproduce

No response

Relevant log output

Anything else?

No response

Code of Conduct

Metadata

Metadata

Assignees

Labels

ModelZoorelated to models/code for modezoo.deeplabcut.org

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions