DeepLabCut / DeepLabCut-core

Headless DeepLabCut (no GUI support)
http://deeplabcut.org
GNU Lesser General Public License v3.0
30 stars 17 forks source link

Attributes #18

Closed TheCrafft closed 3 years ago

TheCrafft commented 3 years ago

Hi! Thank you for making such a great tool!

Your Operating system and DeepLabCut version

OS: Windows 10 DeepLabCut Version: DeepLabCut 2.1.8.2 Anaconda env used: DeepLabCut & TF 1.13.1

OS: Linux (High Performance Cluster) DeepLabCut Version: DeepLabCut 2.1.8.1 Virtual env used: DeepLabCut-core & TF 1.13.1 (GPU)

Describe the problem

I created a project with the full package (DeepLabCut 2.1.8.2) and labelled on Windows. Everything was transferred to the cluster and the paths were adapted in the config.yaml from Windows to Linux. However, since I did not label all images I wanted to call dropimagesduetolackofannotation with DeepLabCut-core. I got an AttributeError: module 'deeplabcutcore' has no attribute 'dropimagesduetolackofannotation'.

On both Windows and Linux dir(DeepLabCut) have different outputs. The windows output includes dropimagesduetolackofannotation, whereas it is not in the core-version output.

After I checked trainingsetmanipulation.py and saw it was included I thought something might be going on, since create_training_dataset works just fine. I am planning on doing some more trainingset manipulation (select my own train & test set ect.), so I thought I would check. I am not sure if this was intended or not.

Traceback

unload python 3.7.4. load python 3.6.8. load cuda 10.0 library and binaries. load cudnn 7.5.0.56 library and binaries. Traceback (most recent call last): File "DLC_CustomTrainingSet.py", line 9, in deeplabcut.dropimagesduetolackofannotation AttributeError: module 'deeplabcutcore' has no attribute 'dropimagesduetolackofannotation'

How to Reproduce the problem Steps to reproduce the behavior: Run the following script:

import deeplabcutcore as deeplabcut

Set config path

config_path = '/home/.../..../.../.../config.yaml'

Remove images without annotations

deeplabcut.dropimagesduetolackofannotation(config_path)

Additional context A successful (training, evaluation and analyzing) transition between Windows and Linux was already achieved.

Output dir(deeplabcutcore)

['CropVideo', 'DEBUG', 'DownSampleVideo', 'ShortenVideo', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'add_new_videos', 'analyze_time_lapse_frames', 'analyze_videos', 'analyze_videos_converth5_to_csv', 'analyzeskeleton', 'auxfun_videos', 'auxiliaryfunctions', 'calibrate_cameras', 'check_labels', 'check_undistortion', 'convertannotationdata_fromwindows2unixstyle', 'convertcsv2h5', 'create_labeled_video', 'create_labeled_video_3d', 'create_new_project', 'create_new_project_3d', 'create_pretrained_human_project', 'create_pretrained_project', 'create_project', 'create_training_dataset', 'create_training_model_comparison', 'evaluate_network', 'export_model', 'extract_frames', 'extract_outlier_frames', 'filterpredictions', 'generate_training_dataset', 'load_demo_data', 'merge_datasets', 'mergeandsplit', 'os', 'platform', 'plot_trajectories', 'pose_estimation_3d', 'pose_estimation_tensorflow', 'post_processing', 'refine_training_dataset', 'return_evaluate_network_data', 'return_train_network_path', 'select_cropping_area', 'train_network', 'triangulate', 'utils']

Output dir(deeplabcut)

['CropVideo', 'DEBUG', 'DownSampleVideo', 'ShortenVideo', 'VERSION', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__version__', 'add_new_videos', 'adddatasetstovideolistandviceversa', 'analyze_time_lapse_frames', 'analyze_videos', 'analyze_videos_converth5_to_csv', 'analyzeskeleton', 'auxfun_videos', 'auxiliaryfunctions', 'calibrate_cameras', 'check_labels', 'check_undistortion', 'comparevideolistsanddatafolders', 'convertannotationdata_fromwindows2unixstyle', 'convertcsv2h5', 'create_labeled_video', 'create_labeled_video_3d', 'create_new_project', 'create_new_project_3d', 'create_pretrained_human_project', 'create_pretrained_project', 'create_project', 'create_training_dataset', 'create_training_model_comparison', 'dropannotationfileentriesduetodeletedimages', 'dropduplicatesinannotatinfiles', 'dropimagesduetolackofannotation', 'evaluate_network', 'export_model', 'extract_frames', 'extract_outlier_frames', 'filterpredictions', 'generate_training_dataset', 'gui', 'label_frames', 'launch_dlc', 'load_demo_data', 'merge_datasets', 'mergeandsplit', 'mpl', 'multiple_individuals_labeling_toolbox', 'os', 'platform', 'plot_trajectories', 'pose_estimation_3d', 'pose_estimation_tensorflow', 'post_processing', 'refine_labels', 'refine_training_dataset', 'return_evaluate_network_data', 'return_train_network_path', 'select_crop_parameters', 'select_cropping_area', 'train_network', 'triangulate', 'utils', 'version']

TheCrafft commented 3 years ago

Functions is callable with dropimagesduetolackofannotation() instead of deeplabcut.dropimagesduetolackofannotation()

Still not sure if this was intended but it works