sgoldenlab / simba

SimBA (Simple Behavioral Analysis), a pipeline and GUI for developing supervised behavioral classifiers
https://simba-uw-tf-dev.readthedocs.io/
GNU General Public License v3.0
286 stars 139 forks source link

"Traceback" error when opening SimBA in the terminal after installing #126

Open RobertoEnrique opened 3 years ago

RobertoEnrique commented 3 years ago

I am unable to open SimBA after following guidelines for installation in an Anaconda Environment with Python 3.6.

My system is: Windows 10 x64bit Processor: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz, 2601 Mhz, 6 Core(s), 12 Logical Processor(s)

Here is the code:

"(simba-test) C:\Users\pazam>simba Traceback (most recent call last): File "c:\users\pazam\anaconda3\envs\simba-test\lib\site-packages\tensorflow\python\platform\self_check.py", line 75, in preload_check ctypes.WinDLL(build_info.cudart_dll_name) File "c:\users\pazam\anaconda3\envs\simba-test\lib\ctypes__init.py", line 348, in init__ self._handle = _dlopen(self._name, mode) OSError: [WinError 126] The specified module could not be found

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "c:\users\pazam\anaconda3\envs\simba-test\lib\runpy.py", line 193, in _run_module_as_main "main", mod_spec) File "c:\users\pazam\anaconda3\envs\simba-test\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "C:\Users\pazam\anaconda3\envs\simba-test\Scripts\simba.exe__main.py", line 4, in File "c:\users\pazam\anaconda3\envs\simba-test\lib\site-packages\simba\SimBA.py", line 8, in import deeplabcut File "c:\users\pazam\anaconda3\envs\simba-test\lib\site-packages\deeplabcut__init.py", line 29, in from deeplabcut import generate_training_dataset File "c:\users\pazam\anaconda3\envs\simba-test\lib\site-packages\deeplabcut\generate_training_dataset__init.py", line 19, in from deeplabcut.generate_training_dataset.labeling_toolbox import * File "c:\users\pazam\anaconda3\envs\simba-test\lib\site-packages\deeplabcut\generate_training_dataset\labeling_toolbox.py", line 27, in from deeplabcut.utils import auxiliaryfunctions File "c:\users\pazam\anaconda3\envs\simba-test\lib\site-packages\deeplabcut\utils\init__.py", line 1, in from deeplabcut.utils.make_labeled_video import * File "c:\users\pazam\anaconda3\envs\simba-test\lib\site-packages\deeplabcut\utils\make_labeled_video.py", line 38, in from deeplabcut.pose_estimation_tensorflow.config import load_config File "c:\users\pazam\anaconda3\envs\simba-test\lib\site-packages\deeplabcut\pose_estimation_tensorflow\init.py", line 13, in from deeplabcut.pose_estimation_tensorflow.nnet import * File "c:\users\pazam\anaconda3\envs\simba-test\lib\site-packages\deeplabcut\pose_estimation_tensorflow\nnet\init.py", line 14, in from deeplabcut.pose_estimation_tensorflow.nnet.losses import * File "c:\users\pazam\anaconda3\envs\simba-test\lib\site-packages\deeplabcut\pose_estimation_tensorflow\nnet\losses.py", line 5, in import tensorflow as tf File "c:\users\pazam\anaconda3\envs\simba-test\lib\site-packages\tensorflow\init__.py", line 28, in from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import File "c:\users\pazam\anaconda3\envs\simba-test\lib\site-packages\tensorflow\python\init__.py", line 49, in from tensorflow.python import pywrap_tensorflow File "c:\users\pazam\anaconda3\envs\simba-test\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 30, in self_check.preload_check() File "c:\users\pazam\anaconda3\envs\simba-test\lib\site-packages\tensorflow\python\platform\self_check.py", line 82, in preload_check % (build_info.cudart_dll_name, build_info.cuda_version_number)) ImportError: Could not find 'cudart64_100.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Download and install CUDA 10.0 from this URL: https://developer.nvidia.com/cuda-90-download-archive"

Any ideas why this might be happening?

sgoldenlab commented 3 years ago

Hi @RobertoEnrique - yes.

I think you have installed the simba-uw-tf version, which needs tensorflow. Tensorflow in turn requires cuda and cudnn, which Simba cannot find the correct versions of installed on your computer. I recommend installing the Simba-uw-tf-dev version of SimBA instead, and running the pose-estimation outside of SimBA.

RobertoEnrique commented 3 years ago

Thank you so much! I installed simba uw-tf-dev and now it works perfect.

I already have pose estimation from deeplabcut (dlc), so thats good. But this means that, in the future, If I had simba installed on a gpu with tensorflow and cuda I could run the dlc labeling and training within simba instead of having to do them separately?

On Sat, Aug 14, 2021 at 7:28 AM sgoldenlab @.***> wrote:

Hi @RobertoEnrique https://github.com/RobertoEnrique - yes.

I think you have installed the simba-uw-tf version, which needs tensorflow. Tensorflow in turn requires cuda and cudnn, which Simba cannot find. I recommend installing the Simba-uw-tf-dev version of SimBA instead, and running the pose-estimation outside of SimBA.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/sgoldenlab/simba/issues/126#issuecomment-898882180, or unsubscribe https://github.com/notifications/unsubscribe-auth/AS5L2TJFFSZH75J7VZS2NDTT4ZHO3ANCNFSM5CCEP2IA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

RobertoEnrique commented 3 years ago

Also, a new issue that I am having is:

In the "Import tracking data" window when creating the project, after having imported 1 single video and specified H5(multi-animal DLC), # of animals (2), and named each animal, and choosing the tracking type "ellipse", I choose the path to the h5 file but after clicking on "Import h5" nothing happens. There is no pop-up window as there should be. Any ideas why this could be happening?

Best, Roberto

El sáb, 14 ago 2021 a las 7:42, Roberto Rodriguez Morales (< @.***>) escribió:

Thank you so much! I installed simba uw-tf-dev and now it works perfect.

I already have pose estimation from deeplabcut (dlc), so thats good. But this means that, in the future, If I had simba installed on a gpu with tensorflow and cuda I could run the dlc labeling and training within simba instead of having to do them separately?

On Sat, Aug 14, 2021 at 7:28 AM sgoldenlab @.***> wrote:

Hi @RobertoEnrique https://github.com/RobertoEnrique - yes.

I think you have installed the simba-uw-tf version, which needs tensorflow. Tensorflow in turn requires cuda and cudnn, which Simba cannot find. I recommend installing the Simba-uw-tf-dev version of SimBA instead, and running the pose-estimation outside of SimBA.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/sgoldenlab/simba/issues/126#issuecomment-898882180, or unsubscribe https://github.com/notifications/unsubscribe-auth/AS5L2TJFFSZH75J7VZS2NDTT4ZHO3ANCNFSM5CCEP2IA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

sgoldenlab commented 3 years ago

Hey @RobertoEnrique - yes I recommend keeping them separately.

Can you check the terminal window, to see if you have any error message there, and paste it here?

Also, do you see any msgs in the main Simba window, after you click to import?

RobertoEnrique commented 3 years ago

So, the script window on the SimBA GUI says this:

Project "Asty_Aggression_Test1" created in folder "simBA_analysis" Project "Asty_Aggression_Test1" created in folder "simBA_analysis" Copying video... 210406_Surface_RC_Males_Match_1_Light.avi copied to Asty_Aggression_Test1\project_folder\videos\210406_Surface_RC_Males_Match_1_Light.avi Finished copying video. Applying settings for multi-animal tracking... Importing 1 multi-animal DLC h5 files to the current project

It looks as if it is still importing the h5. Then, when I look at the command line terminal, this is the message that I see:

(simbaenvnotensor) C:\Users\pazam>simba Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\pazam\anaconda3\envs\simbaenvnotensor\lib\tkinter__init.py", line 1705, in call__ return self.func(*args) File "C:\Users\pazam\anaconda3\envs\simbaenvnotensor\lib\site-packages\simba\SimBA.py", line 3194, in importh5

importMultiDLCpose(self.configinifile,self.h5path.folder_path,self.dropdowndlc.getChoices(),idlist, self.interpolation.getChoices()) File "C:\Users\pazam\anaconda3\envs\simbaenvnotensor\lib\site-packages\simba\read_DLCmulti_h5_function.py", line 86, in importMultiDLCpose currDf = pd.read_hdf(file) File "C:\Users\pazam\anaconda3\envs\simbaenvnotensor\lib\site-packages\pandas\io\pytables.py", line 384, in read_hdf store = HDFStore(path_or_buf, mode=mode, **kwargs) File "C:\Users\pazam\anaconda3\envs\simbaenvnotensor\lib\site-packages\pandas\io\pytables.py", line 484, in init tables = import_optional_dependency("tables") File "C:\Users\pazam\anaconda3\envs\simbaenvnotensor\lib\site-packages\pandas\compat_optional.py", line 93, in import_optional_dependency raise ImportError(message.format(name=name, extra=extra)) from None ImportError: Missing optional dependency 'tables'. Use pip or conda to install tables.

Not sure where the error is happening. It seems it cannot head the h5, right?

El sáb, 14 ago 2021 a las 13:55, sgoldenlab @.***>) escribió:

Hey @RobertoEnrique https://github.com/RobertoEnrique - yes I recommend keeping them separately.

Can you check the terminal window, to see if you have any error message there, and paste it here?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/sgoldenlab/simba/issues/126#issuecomment-898937360, or unsubscribe https://github.com/notifications/unsubscribe-auth/AS5L2TJ2FGR3VKCA5PL4ZZ3T42UXNANCNFSM5CCEP2IA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

sgoldenlab commented 3 years ago

Your python environment for some reason is missing tables.

Could you, close SimBA, type pip install tables, and boot up SimBA again and see if it works?

RobertoEnrique commented 3 years ago

Hi again,

I did pip install tables and that seemed to work, but the window that pops up when I click "Import h5" is empty, it's a gray block that says "Define IDs". When I look into the terminal, it seems as if whatever file it is reading is too long/big to handle.

Here is the code in the terminal and I also attach a screenshot of what I am seeing:

Terminal:

(simbaenvnotensor) C:\Users\pazam>simba Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\pazam\anaconda3\envs\simbaenvnotensor\lib\tkinter__init.py", line 1705, in call__ return self.func(*args) File "C:\Users\pazam\anaconda3\envs\simbaenvnotensor\lib\site-packages\simba\SimBA.py", line 3194, in importh5

importMultiDLCpose(self.configinifile,self.h5path.folder_path,self.dropdowndlc.getChoices(),idlist, self.interpolation.getChoices()) File "C:\Users\pazam\anaconda3\envs\simbaenvnotensor\lib\site-packages\simba\read_DLCmulti_h5_function.py", line 129, in importMultiDLCpose cv2.circle(overlay, (int(x_cord), int(y_cord)), circleScale, currColor, -1, lineType=cv2.LINE_AA) OverflowError: Python int too large to convert to C long

SimBA Window Text:

Welcome fellow scientists :)

Project "Aggression_Test3" created in folder "Roberto" Copying video... 210406_Surface_RC_Males_Match_1_Light.avi copied to Aggression_Test3\project_folder\videos\210406_Surface_RC_Males_Match_1_Light.avi Finished copying video. Applying settings for multi-animal tracking... Importing 1 multi-animal DLC h5 files to the current project

I am not sure why there is no video.

El dom, 15 ago 2021 a las 18:26, sgoldenlab @.***>) escribió:

Your python environment for some reason is missing tables.

Could you, close SimBA, type pip install pytables, and boot up SimBA again and see if it works?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/sgoldenlab/simba/issues/126#issuecomment-899118563, or unsubscribe https://github.com/notifications/unsubscribe-auth/AS5L2TMMJXSDMWHG5EJ6VIDT5A5KZANCNFSM5CCEP2IA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

sronilsson commented 3 years ago

line 129, in importMultiDLCpose cv2.circle(overlay, (int(x_cord), int(y_cord)), circleScale, currColor, -1, lineType=cv2.LINE_AA) OverflowError: Python int too large to convert to C long

That's the key line - this is an odd error haven't seen this before. SimBA is trying to convert the x,y coordinate for the body-parts to integers (they are stored as floats in DLC) so we can plot their locations in the image. However the number is too big to be stored as an integer - which really shouldn't happen. Would you mind sharing your dlc h5 file with goldenneurolab@gmail.com and I will take a look at it if there is something odd?

RobertoEnrique commented 3 years ago

Sure! I would really appreciate the help! Been trying to make this DLC/SimBA work in fish and has been pretty uphill. Also... I do have a csv file that DLC now creates after the filtering step in multianimal tracking (the new release). In there we have the x-y coordinates for all body parts/individuals. Maybe there is a way to upload that instead?

Here is the h5:

210406_Surface_RC_Males_Match_1_LightDLC_resnet... https://drive.google.com/file/d/1Pams9egW_SRBgUv1WmVV05u24op29Tpa/view?usp=drive_web

El mié, 18 ago 2021 a las 17:58, Simon Nilsson @.***>) escribió:

line 129, in importMultiDLCpose cv2.circle(overlay, (int(x_cord), int(y_cord)), circleScale, currColor, -1, lineType=cv2.LINE_AA) OverflowError: Python int too large to convert to C long

That's the key line - this is an odd error haven't seen this before. SimBA is trying to convert the x,y coordinate for the body-parts to integers (they are stored as floats in DLC) so we can plot their locations in the image. However the number is too big to be stored as an integer - which really shouldn't happen. Would you mind sharing your dlc h5 file with @.*** and I will take a look at it if there is something odd?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/sgoldenlab/simba/issues/126#issuecomment-901456916, or unsubscribe https://github.com/notifications/unsubscribe-auth/AS5L2TPAYDSH2Z3JATBI7DDT5QUJ5ANCNFSM5CCEP2IA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

sronilsson commented 3 years ago

Thanks, just saw this, I will try to take a look today.

sronilsson commented 3 years ago

Hi @RobertoEnrique - it is the tracking data that you get from DLC that is strange, specifically for animal number 2 - "ind2", looking at this screenshot for example, on the left you se the final body-part for "ind1", the Dorsal_Fin_Tip - all looks well there with x,y pixel-values and likelihoods which are to be expected.

Then you get to animal 2 - "ind2" and this animals Mouth is located at pixel locations that runs into several billions. This number is too large of an integer so SimBA breaks. I am not sure how this could happen in your pose-estimation end. Judging by the pose-estimation likelihood values for "ind2", I'd say that this animal is also not in the video for the first 7000 frames or so. There are even some negative pixel values in there for "ind2", and this is not possible.

I would try and clip the video, to remove these first frames when ind2 is not in the video, then analyse it again with pose-estimation followed by SimBA.

Alternatively, use the DLC filtering functions to remove body-part estimations with low probabilities, then import the data into SimBA using the interpolation functions to fill in the missing values: https://github.com/sgoldenlab/simba/blob/master/docs/Scenario1.md#step-3-import-dlc-tracking-data

Untitled

RobertoEnrique commented 3 years ago

Thank you for looking into this! I will follow your suggestions and see if I get it to work.

Thanks! -Roberto

On Tue, Aug 24, 2021 at 4:23 PM Simon Nilsson @.***> wrote:

Hi @RobertoEnrique https://github.com/RobertoEnrique - it is the tracking data that you get from DLC that is strange, specifically for animal number 2 - "ind2", looking at this screenshot for example, on the left you se the final body-part for "ind1", the Dorsal_Fin_Tip - all looks well there with x,y pixel-values and likelihoods which are to be expected.

Then you get to animal 2 - "ind2" and this animals Mouth is located at pixel locations that runs into several billions. This number is too large of an integer so SimBA breaks. I am not sure how this could happen in your pose-estimation end. Judging by the pose-estimation likelihood values for "ind2", I'd say that this animal is also not in the video for the first 7000 frames or so. There are even some negative pixel values in there for "ind2", and this is not possible.

I would try and clip the video, to remove these first frames when ind2 is not in the video, then analyse it again with pose-estimation followed by SimBA.

Alternatively, use the DLC filtering functions to remove body-part estimations with low probabilities, then import the data into SimBA using the interpolation functions to fill in the missing values: https://github.com/sgoldenlab/simba/blob/master/docs/Scenario1.md#step-3-import-dlc-tracking-data

[image: Untitled] https://user-images.githubusercontent.com/34761092/130683287-2dcd0afc-0bb9-493b-8db4-d2e8c779f05a.png

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/sgoldenlab/simba/issues/126#issuecomment-904948970, or unsubscribe https://github.com/notifications/unsubscribe-auth/AS5L2TNGIM4OX5EYXZ7AOX3T6P5V3ANCNFSM5CCEP2IA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .