facebookresearch / facebookresearch/SlowFast

Caffe2_checkpoint is integer when loading pre-train models

Open
#354 10 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
7.4k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

Hello. I'm testing different pre-train networks you offer on [MODEL_ZOO.md](https://github.com/facebookresearch/SlowFast/blob/master/MODEL_ZOO.md). When I'm loading different model using pickle (as they are in caffe2), it returns an integer; this later results in an error as an integer doesn't have key-values.

My environment corresponds to a docker container, generated from `pytorch/pytorch:1.7.0-cuda11.0-cudnn8-runtime` image available in Docker Hub, running Ubuntu 18.04.5 LTS and with the needed dependencies stated in the [INSTALL.md](https://github.com/facebookresearch/SlowFast/blob/master/INSTALL.md). Important dependencies version to mention:

- pickle == 4.0
- python == 3.8.3
- torch == 1.7.0

My hardware is:

- Nvidia GeForce GTX 1050Ti
- Intel i7-7700HQ CPU @ 2.80GHz

This happens specifically in the lines 213-215 from the `slowfast/utils/checkpoint.py`, in the `load_checkpoint` function.

```
213 if convert_from_caffe2:
214 with g_pathmgr.open(path_to_checkpoint, "rb") as f:
215 caffe2_checkpoint = pickle.load(f, encoding="latin1")
```

`caffe2_checkpoint` is an int, so when it tries access the keys from the dictionary, it fails (line 218):

```
218 for key in caffe2_checkpoint["blobs"].keys():
```

The `caffe2_checkpoint` is an integer for some model. Among the tested models with this behavior, are:

- SLOWFAST_64x2_R101_50_50.pkl (AVA)
- SLOWFAST_32x2_R101_50_50.pkl (AVA)
- SLOWFAST_8x8_R50_stepwise_multigrid.pkl (Kinetics)
- SLOWFAST_8x8_R50_stepwise.pkl (Kinetics)

Other tested model that return the __correct__ object (dictionary), are:

- SLOWFAST_8x8_R50.pkl (Kinetics)
- SLOWFAST_4x16_R50.pkl (Kinetics)
- SLOWFAST_32x2_R101_50_50_v2.1.pkl (AVA)

The command I'm using is:

```
python3 slowfast/tools/run_net.py \
--cfg \
slowfast/configs/AVA/c2/SLOWFAST_64x2_R101_50_50.yaml \
TEST.DATASET ava \
DATA.PATH_TO_DATA_DIR PATH_TO_DATA_DIR \
AVA.ANNOTATION_DIR annotations \
AVA.LABEL_MAP_FILE ava_action_list_v2.2.pbtxt \
AVA.GROUNDTRUTH_FILE ava_val_v2.2.csv \
AVA.EXCLUSION_FILE ava_val_excluded_timestamps_v2.2.csv \
AVA.TEST_PREDICT_BOX_LISTS [' "ava_val_predicted_boxes.csv" ']
AVA.FRAME_DIR frames \
AVA.FRAME_LIST_DIR frame_lists \
AVA.TEST_LISTS [' "val.csv" '] \
TEST.CHECKPOINT_FILE_PATH path/to/SLOWFAST_64x2_R101_50_50.pkl \
TEST.CHECKPOINT_TYPE caffe2
TRAIN.ENABLE False \
TEST.ENABLE True \
DATA.NUM_FRAMES 16 \
NUM_GPUS 1
```

I would like to confirm if the problem is only on my end or the `.pkl` files have the problem.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.