GithubHelp home page GithubHelp logo

facebookresearch / detectron Goto Github PK

View Code? Open in Web Editor NEW
26.1K 26.1K 5.5K 4.42 MB

FAIR's research platform for object detection research, implementing popular algorithms like Mask R-CNN and RetinaNet.

License: Apache License 2.0

CMake 4.70% Makefile 0.07% Python 92.98% MATLAB 0.25% C++ 0.38% Cuda 0.23% Dockerfile 0.10% Cython 1.29%

detectron's Introduction

Detectron is deprecated. Please see detectron2, a ground-up rewrite of Detectron in PyTorch.

Detectron

Detectron is Facebook AI Research's software system that implements state-of-the-art object detection algorithms, including Mask R-CNN. It is written in Python and powered by the Caffe2 deep learning framework.

At FAIR, Detectron has enabled numerous research projects, including: Feature Pyramid Networks for Object Detection, Mask R-CNN, Detecting and Recognizing Human-Object Interactions, Focal Loss for Dense Object Detection, Non-local Neural Networks, Learning to Segment Every Thing, Data Distillation: Towards Omni-Supervised Learning, DensePose: Dense Human Pose Estimation In The Wild, and Group Normalization.

Example Mask R-CNN output.

Introduction

The goal of Detectron is to provide a high-quality, high-performance codebase for object detection research. It is designed to be flexible in order to support rapid implementation and evaluation of novel research. Detectron includes implementations of the following object detection algorithms:

using the following backbone network architectures:

Additional backbone architectures may be easily implemented. For more details about these models, please see References below.

Update

License

Detectron is released under the Apache 2.0 license. See the NOTICE file for additional details.

Citing Detectron

If you use Detectron in your research or wish to refer to the baseline results published in the Model Zoo, please use the following BibTeX entry.

@misc{Detectron2018,
  author =       {Ross Girshick and Ilija Radosavovic and Georgia Gkioxari and
                  Piotr Doll\'{a}r and Kaiming He},
  title =        {Detectron},
  howpublished = {\url{https://github.com/facebookresearch/detectron}},
  year =         {2018}
}

Model Zoo and Baselines

We provide a large set of baseline results and trained models available for download in the Detectron Model Zoo.

Installation

Please find installation instructions for Caffe2 and Detectron in INSTALL.md.

Quick Start: Using Detectron

After installation, please see GETTING_STARTED.md for brief tutorials covering inference and training with Detectron.

Getting Help

To start, please check the troubleshooting section of our installation instructions as well as our FAQ. If you couldn't find help there, try searching our GitHub issues. We intend the issues page to be a forum in which the community collectively troubleshoots problems.

If bugs are found, we appreciate pull requests (including adding Q&A's to FAQ.md and improving our installation instructions and troubleshooting documents). Please see CONTRIBUTING.md for more information about contributing to Detectron.

References

detectron's People

Contributors

ashwinb avatar bddppq avatar daquexian avatar endernewton avatar gadcam avatar igorsugak avatar ir413 avatar jerryzh168 avatar jguerin-fb avatar juggernaut93 avatar katotetsuro avatar max0x avatar newstzpz avatar normster avatar ppwwyyxx avatar r-barnes avatar rahulg avatar rbgirshick avatar roytseng-tw avatar rratmansky avatar seanbell avatar shenyunhang avatar smessmer avatar stanislavglebik avatar theruiwang avatar wat3rbro avatar willkuhn avatar xiaomengy avatar yangqing avatar zpao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

detectron's Issues

ImportError: cannot import name task_evaluation

When invoke this command:

python2 tools/infer_simple.py \
    --cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml \
    --output-dir /tmp/detectron-visualizations \
    --image-ext jpg \
    --wts https://s3-us-west-2.amazonaws.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl \
    demo

got this error:

Traceback (most recent call last):
  File "tools/infer_simple.py", line 42, in <module>
    import core.test_engine as infer_engine
  File "/home/ylzhao/develop/detectron/lib/core/test_engine.py", line 36, in <module>
    from datasets import task_evaluation
ImportError: cannot import name task_evaluation

Compile the mask_rcnn in caffe2 c++

I want to compile the mask_rcnn in "caffe2 c++" and has saved the network as ".pb" file.
But when I run the net ,I get a error as follow:
E0126 19:19:52.502368 26315 operator.cc:130] Cannot find operator schema for AffineChannel. Will skip schema checking.terminate called after throwing an instance of 'caffe2::EnforceNotMet'
what(): [enforce fail at operator.cc:190] op. Cannot create operator of type 'AffineChannel' on the device 'CUDA'.

Are there any good solutions to solve the problem? This is my c++ code:
NetDef init_net, predict_net;
ModelUtil mask_rcnn_model(init_net, predict_net);
CAFFE_ENFORCE(ReadProtoFromFile(model_dir+"init_net.pb", &init_net));
CAFFE_ENFORCE(ReadProtoFromFile(model_dir+"predict_net.pb", &predict_net));
CAFFE_ENFORCE(workspace.RunNetOnce(mask_rcnn_model.init.net));
CAFFE_ENFORCE(workspace.CreateNet(mask_rcnn_model.predict.net));

Thanks!!!

Running out of memory on a 4GB card

I'm trying to run Faster-RCNN on a Nvidia GTX 1050Ti, but I'm running out of memory. Nvidia-smi says that about 170MB are already in use, but does Faster-RCNN really use 3.8GB of VRAM to process an image?

I tried Mask-RCNN too (the model in the getting started tutorial) and got about 4 images in (5 if I closed my browser) before it crashed.

Is this a bug or does it really just need more than 4GB of memory?

INFO infer_simple.py: 111: Processing demo/18124840932_e42b3e377c_k.jpg -> /home/px046/prog/Detectron/output/18124840932_e42b3e377c_k.jpg.pdf
terminate called after throwing an instance of 'caffe2::EnforceNotMet'
  what():  [enforce fail at blob.h:94] IsType<T>(). wrong type for the Blob instance. Blob contains nullptr (uninitialized) while caller expects caffe2::Tensor<caffe2::CUDAContext> .
Offending Blob name: gpu_0/conv_rpn_w.
Error from operator: 
input: "gpu_0/res4_5_sum" input: "gpu_0/conv_rpn_w" input: "gpu_0/conv_rpn_b" output: "gpu_0/conv_rpn" name: "" type: "Conv" arg { name: "kernel" i: 3 } arg { name: "exhaustive_search" i: 0 } arg { name: "pad" i: 1 } arg { name: "order" s: "NCHW" } arg { name: "stride" i: 1 } device_option { device_type: 1 cuda_gpu_id: 0 } engine: "CUDNN"
*** Aborted at 1516787658 (unix time) try "date -d @1516787658" if you are using GNU date ***
PC: @     0x7f08de455428 gsignal
*** SIGABRT (@0x3e800000932) received by PID 2354 (TID 0x7f087cda9700) from PID 2354; stack trace: ***
    @     0x7f08de4554b0 (unknown)
    @     0x7f08de455428 gsignal
    @     0x7f08de45702a abort
    @     0x7f08d187db39 __gnu_cxx::__verbose_terminate_handler()
    @     0x7f08d187c1fb __cxxabiv1::__terminate()
    @     0x7f08d187c234 std::terminate()
    @     0x7f08d1897c8a execute_native_thread_routine_compat
    @     0x7f08def016ba start_thread
    @     0x7f08de52741d clone
    @                0x0 (unknown)
Aborted (core dumped)

AttributeError: 'module' object has no attribute 'ocl'

when i run this:

python2 tools/infer_simple.py --cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml --output-dir /tmp/detectron-visualizations --image-ext jpg --wts https://s3-us-west-2.amazonaws.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl demo

i got an error:

Traceback (most recent call last):
File "tools/infer_simple.py", line 51, in
cv2.ocl.setUseOpenCL(False)
AttributeError: 'module' object has no attribute 'ocl'

multi GPU running Erro

Hi thx for your excellent work.When I set "NUM_GPUS: 2" runing "e2e_mask_rcnn_R-50-C4_1x" get this erro:

INFO detector.py: 434: Changing learning rate 0.000000 -> 0.003333 at iter 0
I0126 09:53:34.445952 22227 context_gpu.cu:321] GPU 0: 428 MB
I0126 09:53:34.445999 22227 context_gpu.cu:321] GPU 1: 502 MB
I0126 09:53:34.446020 22227 context_gpu.cu:325] Total: 931 MB
I0126 09:53:34.452062 22230 context_gpu.cu:321] GPU 0: 428 MB
I0126 09:53:34.452098 22230 context_gpu.cu:321] GPU 1: 649 MB
I0126 09:53:34.452108 22230 context_gpu.cu:325] Total: 1078 MB
I0126 09:53:34.457942 22227 context_gpu.cu:321] GPU 0: 428 MB
I0126 09:53:34.457973 22227 context_gpu.cu:321] GPU 1: 781 MB
I0126 09:53:34.457991 22227 context_gpu.cu:325] Total: 1209 MB
I0126 09:53:34.462600 22227 context_gpu.cu:321] GPU 0: 428 MB
I0126 09:53:34.462627 22227 context_gpu.cu:321] GPU 1: 913 MB
I0126 09:53:34.462646 22227 context_gpu.cu:325] Total: 1341 MB
I0126 09:53:34.469861 22227 context_gpu.cu:321] GPU 0: 428 MB
I0126 09:53:34.469885 22227 context_gpu.cu:321] GPU 1: 1059 MB
I0126 09:53:34.469903 22227 context_gpu.cu:325] Total: 1488 MB
I0126 09:53:34.476531 22233 context_gpu.cu:321] GPU 0: 428 MB
I0126 09:53:34.476557 22233 context_gpu.cu:321] GPU 1: 1191 MB
I0126 09:53:34.476568 22233 context_gpu.cu:325] Total: 1620 MB
I0126 09:53:34.484189 22227 context_gpu.cu:321] GPU 0: 428 MB
I0126 09:53:34.484215 22227 context_gpu.cu:321] GPU 1: 1323 MB
I0126 09:53:34.484221 22227 context_gpu.cu:325] Total: 1751 MB
I0126 09:53:34.493640 22227 context_gpu.cu:321] GPU 0: 468 MB
I0126 09:53:34.493661 22227 context_gpu.cu:321] GPU 1: 1440 MB
I0126 09:53:34.493669 22227 context_gpu.cu:325] Total: 1909 MB
I0126 09:53:34.504007 22226 context_gpu.cu:321] GPU 0: 488 MB
I0126 09:53:34.504045 22226 context_gpu.cu:321] GPU 1: 1552 MB
I0126 09:53:34.504053 22226 context_gpu.cu:325] Total: 2041 MB
I0126 09:53:34.509182 22226 context_gpu.cu:321] GPU 0: 615 MB
I0126 09:53:34.509219 22226 context_gpu.cu:321] GPU 1: 1574 MB
I0126 09:53:34.509229 22226 context_gpu.cu:325] Total: 2190 MB
I0126 09:53:34.515350 22226 context_gpu.cu:321] GPU 0: 712 MB
I0126 09:53:34.515370 22226 context_gpu.cu:321] GPU 1: 1626 MB
I0126 09:53:34.515381 22226 context_gpu.cu:325] Total: 2338 MB
I0126 09:53:34.521685 22226 context_gpu.cu:321] GPU 0: 810 MB
I0126 09:53:34.521703 22226 context_gpu.cu:321] GPU 1: 1677 MB
I0126 09:53:34.521711 22226 context_gpu.cu:325] Total: 2487 MB
I0126 09:53:34.526744 22232 context_gpu.cu:321] GPU 0: 913 MB
I0126 09:53:34.526764 22232 context_gpu.cu:321] GPU 1: 1713 MB
I0126 09:53:34.526770 22232 context_gpu.cu:325] Total: 2627 MB
I0126 09:53:34.534111 22227 context_gpu.cu:321] GPU 0: 986 MB
I0126 09:53:34.534143 22227 context_gpu.cu:321] GPU 1: 1779 MB
I0126 09:53:34.534152 22227 context_gpu.cu:325] Total: 2766 MB
I0126 09:53:34.540236 22226 context_gpu.cu:321] GPU 0: 1054 MB
I0126 09:53:34.540256 22226 context_gpu.cu:321] GPU 1: 1839 MB
I0126 09:53:34.540262 22226 context_gpu.cu:325] Total: 2894 MB
I0126 09:53:34.561064 22226 context_gpu.cu:321] GPU 0: 1179 MB
I0126 09:53:34.561101 22226 context_gpu.cu:321] GPU 1: 1845 MB
I0126 09:53:34.561110 22226 context_gpu.cu:325] Total: 3025 MB
I0126 09:53:34.571882 22226 context_gpu.cu:321] GPU 0: 1228 MB
I0126 09:53:34.571910 22226 context_gpu.cu:321] GPU 1: 1927 MB
I0126 09:53:34.571919 22226 context_gpu.cu:325] Total: 3156 MB
I0126 09:53:34.584810 22226 context_gpu.cu:321] GPU 0: 1391 MB
I0126 09:53:34.584846 22226 context_gpu.cu:321] GPU 1: 1927 MB
I0126 09:53:34.584856 22226 context_gpu.cu:325] Total: 3318 MB
F0126 09:53:34.613024 22226 context_gpu.cu:387] Error at: /home/moyan/caffe2/caffe2/caffe2/core/context_gpu.cu:387: an illegal memory access was encountered
*** Check failure stack trace: ***
terminate called recursively
terminate called after throwing an instance of '*** Aborted at 1516931614 (unix time) try "date -d @1516931614" if you are using GNU date ***
caffe2::EnforceNotMet'
what(): [enforce fail at context_gpu.h:170] . Encountered CUDA error: an illegal memory access was encountered Error from operator:
input: "gpu_0/rpn_cls_logits_w_grad" input: "gpu_1/rpn_cls_logits_w_grad" output: "gpu_0/rpn_cls_logits_w_grad" name: "" type: "Add" device_option { device_type: 1 cuda_gpu_id: 0 }
@ 0x7f71a16785cd google::LogMessage::Fail()
PC: @ 0x7f71b5133428 gsignal
@ 0x7f71a167a433 google::LogMessage::SendToLog()
*** SIGABRT (@0x3e800005153) received by PID 20819 (TID 0x7f705ffff700) from PID 20819; stack trace: ***
@ 0x7f71a167815b google::LogMessage::Flush()
@ 0x7f71b5be9390 (unknown)
@ 0x7f71a167ae1e google::LogMessageFatal::~LogMessageFatal()
@ 0x7f71b5133428 gsignal
@ 0x7f71b513502a abort
@ 0x7f71ae550b39 __gnu_cxx::__verbose_terminate_handler()
@ 0x7f71ae54f1fb __cxxabiv1::__terminate()
@ 0x7f71ae54f234 std::terminate()
@ 0x7f71ae56ac8a execute_native_thread_routine_compat
@ 0x7f71b5bdf6ba start_thread
@ 0x7f71a1e87085 caffe2::CUDAContext::Delete()
@ 0x7f71b52053dd clone
@ 0x7f71a1dafe96 caffe2::Tensor<>::ResizeLike<>()
@ 0x0 (unknown)

When I set "NUM_GPUS: 1" runing "e2e_mask_rcnn_R-50-C4_1x" is well .

Difficult to observe the loss value during training in the Terminal

Hi guys ! First of all, amazing work !!!
I know this is not a bug but I just want to say that it is very difficult for me to observe how the loss value changes during training. I think representing the loss values in json format is pretty bad idea. I would like to alter this for better visualization (like Keras). I will update my progress in here.
screenshot from 2018-01-24 13-14-01

tools/infer_simple.py fail

I downloaded a caffe2 docker file from this link: https://github.com/caffe2/caffe2/blob/master/docker/ubuntu-16.04-cuda8-cudnn6-all-options/Dockerfile

then ran the following to build

# Use the latest Caffe2 master
sed -i -e 's/ --branch v0.8.1//g' Dockerfile
docker build -t caffe2:cuda8-cudnn6-all-options .

I then cloned https://github.com/facebookresearch/Detectron/ and built a Detectron image:

cd $DETECTRON/docker
docker build -t detectron:c2-cuda8-cudnn6 .

I ran this docker using the following commands with my devices added:

nvidia-docker run --rm -it --device=/dev/nvidiactl --device=/dev/nvidia-uvm --device=/dev/nvidia0  detectron:c2-cuda8-cudnn6

Inside my docker I ran this (from GETTING_STARTED.md) to verify I could run inference on a directory of image files :

python2 tools/infer_simple.py \
    --cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml \
    --output-dir /tmp/detectron-visualizations \
    --image-ext jpg \
    --wts https://s3-us-west-2.amazonaws.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl \
    demo

The fail I got was this:

E0125 13:59:11.822402    20 init_intrinsics_check.cc:54] CPU feature avx is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
E0125 13:59:11.822424    20 init_intrinsics_check.cc:54] CPU feature avx2 is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
E0125 13:59:11.822428    20 init_intrinsics_check.cc:54] CPU feature fma is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
INFO io.py:  67: Downloading remote file https://s3-us-west-2.amazonaws.com/detectron/ImageNetPretrained/MSRA/R-101.pkl to /tmp/detectron-download-cache/ImageNetPretrained/MSRA/R-101.pkl
  [------------------------------------------------------------] 0.0% of 170.2MB  [------------------------------------------------------------] 0.0% of 170.2MB  [---------------------------------------------
...
...
...
I0125 14:02:33.693230    20 net_dag.cc:61] Number of parallel execution chains 63 Number of operators = 402
I0125 14:02:33.720326    20 net_dag_utils.cc:118] Operator graph pruning prior to chain compute took: 0.000215514 secs
I0125 14:02:33.720594    20 net_dag.cc:61] Number of parallel execution chains 30 Number of operators = 358
I0125 14:02:33.722873    20 net_dag_utils.cc:118] Operator graph pruning prior to chain compute took: 1.6725e-05 secs
I0125 14:02:33.722909    20 net_dag.cc:61] Number of parallel execution chains 5 Number of operators = 18
INFO infer_simple.py: 111: Processing demo/17790319373_bd19b24cfc_k.jpg -> /tmp/detectron-visualizations/17790319373_bd19b24cfc_k.jpg.pdf
terminate called after throwing an instance of 'caffe2::EnforceNotMet'
  what():  [enforce fail at context_gpu.h:170] . Encountered CUDA error: invalid device function Error from operator: 
input: "gpu_0/res2_0_branch2c_bn" input: "gpu_0/res2_0_branch1_bn" output: "gpu_0/res2_0_branch2c_bn" name: "" type: "Sum" device_option { device_type: 1 cuda_gpu_id: 0 }
*** Aborted at 1516888954 (unix time) try "date -d @1516888954" if you are using GNU date ***
PC: @     0x7f8fbb2c0428 gsignal
*** SIGABRT (@0x14) received by PID 20 (TID 0x7f8f656a6700) from PID 20; stack trace: ***
    @     0x7f8fbb2c04b0 (unknown)
    @     0x7f8fbb2c0428 gsignal
    @     0x7f8fbb2c202a abort
    @     0x7f8fb523784d __gnu_cxx::__verbose_terminate_handler()
    @     0x7f8fb52356b6 (unknown)
    @     0x7f8fb5235701 std::terminate()
    @     0x7f8fb5260d38 (unknown)
    @     0x7f8fbb65c6ba start_thread
    @     0x7f8fbb39241d clone
    @                0x0 (unknown)
Aborted (core dumped)

Any help would be much appreciated thank you

AttributeError: 'module' object has no attribute 'ocl'

When invoke this command:

python2 tools/infer_simple.py \
    --cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml \
    --output-dir /tmp/detectron-visualizations \
    --image-ext jpg \
    --wts https://s3-us-west-2.amazonaws.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl \
    demo

got this error:

Traceback (most recent call last):
  File "tools/infer_simple.py", line 51, in <module>
    cv2.ocl.setUseOpenCL(False)
AttributeError: 'module' object has no attribute 'ocl'

How can i train model from scratch

Hello.

I want to train mask rcnn from scratch(not using the pre-trained weight)

I hope weight parameter starts from random initialization.

How can i do this?

How to train the custom dataset.

Hi! First, thank you for your wonderful works.
I finish training the RetinaNet with COCO dataset as you instructed.
I want to train my own dataset with RetinaNet or another baseline models.

I look at the inside code structure and figure out that all model configurations are defined in *.yaml file and train_net.py read the *.yaml file and construct the database from .jason file in COCO annotations directory.

So if I want to train my own dataset, the only way is to generate the .json file similar with COCO annotations?

Not seeing masks in output images

33823288584_1d21cf0a26_k.jpg.pdf
See image attached am I doing something wrong?

This is using ResNet50.

It is a fresh caffe2 install on Ubuntu 16.04 with cuda 8.0 and cudnn 6.0

this is the command I ran

python2 tools/infer_simple.py --cfg configs/getting_started/tutorial_1gpu_e2e_faster_rcnn_R-50-FPN.yaml --output-dir /tmp/detectron-visualizations --image-ext jpg --wts https://s3-us-west-2.amazonaws.com/detectron/35857389/12_2017_baselines/e2e_faster_rcnn_R-50-FPN_2x.yaml.01_37_22.KSeq0b5q/output/train/coco_2014_train%3Acoco_2014_valminusminival/generalized_rcnn/model_final.pkl demo

Too much expensive keypoint post-processing

I think you are spending too much time in keypoint post-processing without any need.

def heatmaps_to_keypoints(maps, rois):
    """Extract predicted keypoint locations from heatmaps. Output has shape
    (#rois, 4, #keypoints) with the 4 rows corresponding to (x, y, logit, prob)
    for each keypoint.
    """
    # This function converts a discrete image coordinate in a HEATMAP_SIZE x
    # HEATMAP_SIZE image to a continuous keypoint coordinate. We maintain
    # consistency with keypoints_to_heatmap_labels by using the conversion from
    # Heckbert 1990: c = d + 0.5, where d is a discrete coordinate and c is a
    # continuous coordinate.
    offset_x = rois[:, 0]
    offset_y = rois[:, 1]

    widths = rois[:, 2] - rois[:, 0]
    heights = rois[:, 3] - rois[:, 1]
    widths = np.maximum(widths, 1)
    heights = np.maximum(heights, 1)
    widths_ceil = np.ceil(widths)
    heights_ceil = np.ceil(heights)

    # NCHW to NHWC for use with OpenCV
    maps = np.transpose(maps, [0, 2, 3, 1])
    min_size = cfg.KRCNN.INFERENCE_MIN_SIZE
    xy_preds = np.zeros(
        (len(rois), 4, cfg.KRCNN.NUM_KEYPOINTS), dtype=np.float32)
    for i in range(len(rois)):
        if min_size > 0:
            roi_map_width = int(np.maximum(widths_ceil[i], min_size))
            roi_map_height = int(np.maximum(heights_ceil[i], min_size))
        else:
            roi_map_width = widths_ceil[i]
            roi_map_height = heights_ceil[i]
        width_correction = widths[i] / roi_map_width
        height_correction = heights[i] / roi_map_height

        #roi_map = cv2.resize(
        #    maps[i], (roi_map_width, roi_map_height),
        #    interpolation=cv2.INTER_NEAREST)
        # Bring back to CHW
        roi_map = maps[i].copy()
        roi_map = np.transpose(roi_map, [2, 0, 1])
        roi_map_probs = scores_to_probs(roi_map.copy())

        w = roi_map.shape[2]
        for k in range(cfg.KRCNN.NUM_KEYPOINTS):
            pos = roi_map[k, :, :].argmax()

            x_int = pos % w
            y_int = (pos - x_int) // w
            assert (roi_map_probs[k, y_int, x_int] ==
                    roi_map_probs[k, :, :].max())
            x = (x_int*float(roi_map_width/w) + 0.5) * width_correction
            y = (y_int*float(roi_map_height/w) + 0.5) * height_correction
            xy_preds[i, 0, k] = x + offset_x[i]
            xy_preds[i, 1, k] = y + offset_y[i]
            xy_preds[i, 2, k] = roi_map[k, y_int, x_int]
            xy_preds[i, 3, k] = roi_map_probs[k, y_int, x_int]

    return xy_preds

This achieve same results with less computation. Any explanation for the method implemented?

keypoint training nan (#resolved: you need to apply the linear scaling rule when adjusting the number of GPUs during training)

python2 tools/train_net.py --cfg configs/12_2017_baselines/e2e_keypoint_rcnn_R-101-FPN_1x.yaml OUTPUT_DIR /tmp/detectron-output NUM_GPUS 1

Got Negative or NaN loss while training keypoint like the following, could not figure out the reasons. The coco data is downloaded from the official website. Tried e2e_keypoint_rcnn_R-50-FPN_1x.yaml etc, also got the same errors. Printing out the losses.

print(np.array([self.losses_and_metrics[k] for k in self.model.losses]))
json_stats: {"accuracy_cls": 0.804688, "eta": "10:24:55", "iter": 120, "loss": 8.408110, "loss_bbox": 0.352813, "loss_cls": 0.407682, "loss_kps": 7.525052, "loss_rpn_bbox_fpn2": 0.000000, "loss_rpn_bbox_fpn3": 0.000000, "loss_rpn_bbox_fpn4": 0.000000, "loss_rpn_bbox_fpn5": 0.003086, "loss_rpn_bbox_fpn6": 0.000943, "loss_rpn_cls_fpn2": 0.032497, "loss_rpn_cls_fpn3": 0.021612, "loss_rpn_cls_fpn4": 0.010768, "loss_rpn_cls_fpn5": 0.007526, "loss_rpn_cls_fpn6": 0.002437, "lr": 0.009867, "mb_qsize": 64, "mem": 8873, "time": 0.417168}
[  3.47561250e-03   0.00000000e+00   3.90737087e-01   1.66270062e-02
   0.00000000e+00   0.00000000e+00   4.36257482e-01   1.92877371e-02
   6.92374632e-02   8.01100396e-03   3.68567742e-03   4.04049922e-03
   1.31183434e+01]
total:  14.069702921
E0123 22:41:16.943624  9917 pybind_state.h:422] Exception encountered running PythonOp function: AssertionError: Negative areas founds
[             nan              nan              nan   1.87069760e+26
   3.42327067e+24              nan              nan              nan
              nan   1.00860528e+28              nan   2.96251020e+27
              nan]
total:  nan
CRITICAL train_net.py: 239: Loss is NaN, exiting...
INFO loader.py: 126: Stopping enqueue thread
INFO loader.py: 113: Stopping mini-batch loading thread
INFO loader.py: 113: Stopping mini-batch loading thread
INFO loader.py: 113: Stopping mini-batch loading thread
INFO loader.py: 113: Stopping mini-batch loading thread

Dataset not on COCO format

Is there any tutorial for how to train our custom dataset using PASCAL dataset format for annotations?

Docker build fails

I do not see an image named 'caffe2:cuda8-cudnn6-all-options' on docker hub and that seems to be the reason why the build is failing

I want to classify only human class

I want to classify only human class

As a result of running infer_simply.py, i want to a image that contains only human class and human segmentation (does not contain other class)

How can i do this?

Error at: caffe2/core/context_gpu.cu:343: out of memory

Hi, thanks for the great work!

Ran to an out of memory issue when we were running test_net.py on COCO dataset with 2 TITAN X set up. Installations were fine and coco datasets were included in /lib/datasets/data/coco. A line was added in test_net.py to facilitate the use of 3rd and 4th GPUs.
os.environ['CUDA_VISIBLE_DEVICES'] = "2,3"

We tried to run the code:
./tools/test_net.py --cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml --multi-gpu-testing TEST.WEIGHTS https://s3-us-west-2.amazonaws.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl NUM_GPUS 2

and encountered error as such:

terminate called after throwing an instance of 'caffe2::EnforceNotMet'
  what():  [enforce fail at context_gpu.cu:343] error == cudaSuccess. 2 vs 0. Error at: /home/user/default/caffe2/caffe2/core/context_gpu.cu:343: out of memory Error from operator:
input: "gpu_0/roi_feat_fpn2" input: "gpu_0/roi_feat_fpn3" input: "gpu_0/roi_feat_fpn4" input: "gpu_0/roi_feat_fpn5" output: "gpu_0/roi_feat_shuffled" output: "gpu_0/_concat_roi_feat" name: "" type: "Concat" arg { name: "axis" i: 0 } device_option { device_type: 1 cuda_gpu_id: 0 }
*** Aborted at 1516700071 (unix time) try "date -d @1516700071" if you are using GNU date ***
PC: @     0x7faf48c0c428 gsignal
*** SIGABRT (@0x3e800001c16) received by PID 7190 (TID 0x7fae72ffd700) from PID 7190; stack trace: ***
    @     0x7faf48fb2390 (unknown)
    @     0x7faf48c0c428 gsignal
    @     0x7faf48c0e02a abort
    @     0x7faf45bf484d __gnu_cxx::__verbose_terminate_handler()
    @     0x7faf45bf26b6 (unknown)
    @     0x7faf45bf2701 std::terminate()
    @     0x7faf45c1dd38 (unknown)
    @     0x7faf48fa86ba start_thread
    @     0x7faf48cde3dd clone
    @                0x0 (unknown)
Aborted (core dumped)
Traceback (most recent call last):
  File "./tools/test_net.py", line 168, in <module>
    main(ind_range=args.range, multi_gpu_testing=args.multi_gpu_testing)
  File "./tools/test_net.py", line 133, in main
    results = parent_func(multi_gpu=multi_gpu_testing)
  File "/home/user/default/Detectron/lib/core/test_engine.py", line 59, in test_net_on_dataset
    num_images, output_dir
  File "/home/user/default/Detectron/lib/core/test_engine.py", line 82, in multi_gpu_test_net_on_dataset
    'detection', num_images, binary, output_dir
  File "/home/user/default/Detectron/lib/utils/subprocess.py", line 83, in process_in_parallel
    log_subprocess_output(i, p, output_dir, tag, start, end)
  File "/home/user/default/Detectron/lib/utils/subprocess.py", line 121, in log_subprocess_output
    assert ret == 0, 'Range subprocess failed (exit code: {})'.format(ret)
AssertionError: Range subprocess failed (exit code: 134)

Is there any settings that we are missing? Thank you!

ImportError: cannot import name task_evaluation

Traceback (most recent call last):
File "tools/infer_simple.py", line 42, in
import core.test_engine as infer_engine
File "/home/user523/zjs/detectron/lib/core/test_engine.py", line 36, in
from datasets import task_evaluation
ImportError: cannot import name task_evaluation

I have added detectron/lib to pythonpath,but it still can not work.

mini-batch size for RetinaNet.

Hi, I want to train the retinaNet with retinanet_R-50-FPN_1x.yaml configuration setting.

I want to ask where can I set the mini-batch size for training.
I think there is no information of the batch size in .yaml file, and it is hard to find that information on the train_net.py either.

Mask FPN training question: best way to reduce memory need

Trained mask fpn rcnn (Resnet50) with 4 GPUs (11GB memory), it ran out of memory after a few iterations. The training went fine after reduce image scale size from 800x1333 to 600x1000.

What's the best way to reduce memory need without hurting accuracy? Reduce image size will reduce accuracy by ~1 percentage point. How about BATCH_SIZE_PER_IM? Currently it's set at 512, ok to set it to 256?

Thx.

ps: GPUs memory usage (with reduced scale 600x1000):

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0     28227      C   python2                                     8836MiB |
|    1     28227      C   python2                                     8577MiB |
|    2     28227      C   python2                                     8313MiB |
|    3     28227      C   python2                                     8405MiB |
+-----------------------------------------------------------------------------+

Create a pkl weights file

Hello.
I have images whose resolution differs from the resolution in the pretrained models (pkl weight files). It seems that I need to train my own model before I can use Detectron.
How to create a pickle weights file?
From what framework I have to save a model to a file?
Thanks.

softmax_focal_loss_op.cu(80): error : identifier "pow<double, float> " is undefined in device code

Compile with CUDA 9.0 + cudnn 7.0 + windowns 10 x64 + VISUAL STUDIO 14 2015

compile error:
D:/Develop/DL/temp/caffe2/modules/detectron/softmax_focal_loss_op.cu(80): error : calling a host function("pow<double, float> ") from a global function("caffe2::_NV_ANON_NAMESPACE::SoftmaxFocalLossKernel") is not allowed
D:/Develop/DL/temp/caffe2/modules/detectron/softmax_focal_loss_op.cu(80): error : identifier "pow<double, float> " is undefined in device code

here is the cmake output results:
Need to define long as a separate typeid.
Current compiler supports avx2 extention. Will build perfkernels.
CMake Warning (dev) at cmake/MiscCheck.cmake:108 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.

Quoted variables like "MSVC" will no longer be dereferenced when the policy
is set to NEW. Since the policy is not set the OLD behavior will be used.
Call Stack (most recent call first):
CMakeLists.txt:64 (include)
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at build_host_protoc/cmake/protobuf-config-version.cmake:52 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.

Quoted variables like "" will no longer be dereferenced when the policy is
set to NEW. Since the policy is not set the OLD behavior will be used.
Call Stack (most recent call first):
cmake/ProtoBuf.cmake:55 (find_package)
cmake/Dependencies.cmake:8 (include)
CMakeLists.txt:81 (include)
This warning is for project developers. Use -Wno-dev to suppress it.

The BLAS backend of choice:Eigen
OpenCV found (D:/Develop/DL/tools/opencv/build/x64/vc14/lib)
Found system Eigen at D:/Develop/libs/Eigen3/include/eigen3
Could NOT find pybind11 (missing: pybind11_INCLUDE_DIR)
Could NOT find MPI_C (missing: MPI_C_LIBRARIES MPI_C_INCLUDE_PATH)
Could NOT find MPI_CXX (missing: MPI_CXX_LIBRARIES MPI_CXX_INCLUDE_PATH)
CMake Warning at cmake/Dependencies.cmake:300 (message):
Not compiling with MPI. Suppress this warning with -DUSE_MPI=OFF
Call Stack (most recent call first):
CMakeLists.txt:81 (include)

CUDA detected: 9.0
Added CUDA NVCC flags for: sm_30 sm_35 sm_50 sm_52 sm_60 sm_61 sm_70
Found libcuda: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0/lib/x64/cuda.lib
Found libnvrtc: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0/lib/x64/nvrtc.lib
Found cuDNN: v7.0.4 (include: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0/include, library: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v9.0/lib/x64/cudnn.lib)
CMake Warning at cmake/Dependencies.cmake:371 (message):
NCCL is currently only supported under Linux.
Call Stack (most recent call first):
CMakeLists.txt:81 (include)

Could NOT find CUB (missing: CUB_INCLUDE_DIR)
CMake Warning at cmake/Dependencies.cmake:393 (message):
Gloo can only be used on Linux.
Call Stack (most recent call first):
CMakeLists.txt:81 (include)

CMake Warning at cmake/Dependencies.cmake:473 (message):
Metal is only used in ios builds.
Call Stack (most recent call first):
CMakeLists.txt:81 (include)

NCCL operators skipped due to no CUDA support
Including image processing operators
Excluding video processing operators due to no opencv
Excluding mkl operators as we are not using mkl
MPI operators skipped due to no MPI support
CMake Warning (dev) at cmake/Utils.cmake:176 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.

Quoted variables like "MSVC" will no longer be dereferenced when the policy
is set to NEW. Since the policy is not set the OLD behavior will be used.
Call Stack (most recent call first):
cmake/Utils.cmake:193 (caffe_add_whole_archive_flag)
caffe2/CMakeLists.txt:103 (caffe_add_linker_flag)
This warning is for project developers. Use -Wno-dev to suppress it.

******** Summary ********
General:
CMake version : 3.7.0
CMake command : C:/Program Files/CMake/bin/cmake.exe
Git version : v0.8.1-978-g6a938bb2-dirty
System : Windows
C++ compiler : C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
C++ compiler version : 19.0.24210.0
Protobuf compiler : D:\Develop\DL\temp\caffe2\build_host_protoc\bin\protoc.exe
Protobuf include path :
Protobuf libraries :
CXX flags : /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MP /bigobj
Build type : Release
Compile definitions :

BUILD_BINARY : ON
BUILD_DOCS : OFF
BUILD_PYTHON : OFF
BUILD_SHARED_LIBS : OFF
BUILD_TEST : OFF
USE_ATEN : OFF
USE_ASAN : OFF
USE_CUDA : ON
CUDA version : 9.0
CuDNN version : 7.0.4
USE_EIGEN_FOR_BLAS : 1
USE_FFMPEG : OFF
USE_GFLAGS : OFF
USE_GLOG : OFF
USE_GLOO : OFF
USE_LEVELDB : OFF
USE_LITE_PROTO : OFF
USE_LMDB : OFF
USE_METAL : OFF
USE_MKL :
USE_MOBILE_OPENGL : OFF
USE_MPI : OFF
USE_NCCL : OFF
USE_NERVANA_GPU : OFF
USE_NNPACK : OFF
USE_OBSERVERS : OFF
USE_OPENCV : ON
OpenCV version : 3.4.0
USE_OPENMP : OFF
USE_PROF : OFF
USE_REDIS : OFF
USE_ROCKSDB : OFF
USE_THREADS : ON
USE_ZMQ : OFF
CMake Warning at CMakeLists.txt:206 (message):
Generated cmake files are only fully tested if one builds with system glog,
gflags, and protobuf.

CMake Warning at CMakeLists.txt:239 (message):
Generated cmake files are only available when building shared libs.

Configuring done
Generating done

The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

node = self.represent_data(data)

File "/usr/local/lib/python2.7/dist-packages/yaml/representer.py", line 61, in represent_data
node = self.yaml_multi_representers[data_type](self, data)
File "/usr/local/lib/python2.7/dist-packages/yaml/representer.py", line 447, in represent_object
return self.represent_mapping(tag+function_name, value)
File "/usr/local/lib/python2.7/dist-packages/yaml/representer.py", line 123, in represent_mapping
node_value = self.represent_data(item_value)
File "/usr/local/lib/python2.7/dist-packages/yaml/representer.py", line 57, in represent_data
node = self.yaml_representers[data_types[0]](self, data)
File "/usr/local/lib/python2.7/dist-packages/yaml/representer.py", line 223, in represent_dict
return self.represent_mapping(u'tag:yaml.org,2002:map', data)
File "/usr/local/lib/python2.7/dist-packages/yaml/representer.py", line 123, in represent_mapping
node_value = self.represent_data(item_value)
File "/usr/local/lib/python2.7/dist-packages/yaml/representer.py", line 41, in represent_data
if self.ignore_aliases(data):
File "/usr/local/lib/python2.7/dist-packages/yaml/representer.py", line 142, in ignore_aliases
if data in [None, ()]:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

docker build instructions fails "pull access denied for caffe2"

When following the below:

cd $DETECTRON/docker
sudo docker build -t detectron:c2-cuda8-cudnn6 .

the output is:

Sending build context to Docker daemon   2.56kB
Step 1/10 : FROM caffe2:cuda8-cudnn6-all-options
pull access denied for caffe2, repository does not exist or may require 'docker login'

Suggestions?

AttributeError: 'NoneType' object has no attribute 'copy'

I want to run the keypoints detection demo, alike to the demo, I executed the following shell code:

python2 tools/infer_simple.py \
--cfg configs/test_time_aug/keypoint_rcnn_R-50-FPN_1x.yaml \
--output-dir /tmp/detectron-visualizations \
--image-ext jpg \
--wts /tmp/detectron-download-cache/ImageNetPretrained/MSRA/R-50.pkl \
demo

then I got errors:

url= https://s3-us-west-2.amazonaws.com/detectron/ImageNetPretrained/MSRA/R-50.pkl
cache_file_path= /tmp/detectron-download-cache/ImageNetPretrained/MSRA/R-50.pkl
url= https://s3-us-west-2.amazonaws.com/detectron/35998996/12_2017_baselines/rpn_person_only_R-50-FPN_1x.yaml.08_10_08.0ZWmJm6F/output/test/keypoints_coco_2014_train/generalized_rcnn/rpn_proposals.pkl
cache_file_path= /tmp/detectron-download-cache/35998996/12_2017_baselines/rpn_person_only_R-50-FPN_1x.yaml.08_10_08.0ZWmJm6F/output/test/keypoints_coco_2014_train/generalized_rcnn/rpn_proposals.pkl
url= https://s3-us-west-2.amazonaws.com/detectron/35998996/12_2017_baselines/rpn_person_only_R-50-FPN_1x.yaml.08_10_08.0ZWmJm6F/output/test/keypoints_coco_2014_valminusminival/generalized_rcnn/rpn_proposals.pkl
cache_file_path= /tmp/detectron-download-cache/35998996/12_2017_baselines/rpn_person_only_R-50-FPN_1x.yaml.08_10_08.0ZWmJm6F/output/test/keypoints_coco_2014_valminusminival/generalized_rcnn/rpn_proposals.pkl
url= https://s3-us-west-2.amazonaws.com/detectron/35998996/12_2017_baselines/rpn_person_only_R-50-FPN_1x.yaml.08_10_08.0ZWmJm6F/output/test/keypoints_coco_2014_minival/generalized_rcnn/rpn_proposals.pkl
cache_file_path= /tmp/detectron-download-cache/35998996/12_2017_baselines/rpn_person_only_R-50-FPN_1x.yaml.08_10_08.0ZWmJm6F/output/test/keypoints_coco_2014_minival/generalized_rcnn/rpn_proposals.pkl
WARNING cnn.py: 40: [====DEPRECATE WARNING====]: you are creating an object from CNNModelHelper class which will be deprecated soon. Please use ModelHelper object with brew module. For more information, please refer to caffe2.ai and python/brew.py, python/brew_test.py for more information.
WARNING model_builder.py: 444: Deprecated: use MODEL.TYPE: generalized_rcnn with MODEL.KEYPOINTS_ON: True
INFO net.py: 54: Loading from: /tmp/detectron-download-cache/ImageNetPretrained/MSRA/R-50.pkl
INFO net.py: 91: conv1_w loaded from weights file into gpu_0/conv1_w: (64, 3, 7, 7)
INFO net.py: 91: res_conv1_bn_s loaded from weights file into gpu_0/res_conv1_bn_s: (64,)
INFO net.py: 91: res_conv1_bn_b loaded from weights file into gpu_0/res_conv1_bn_b: (64,)
INFO net.py: 91: res2_0_branch2a_w loaded from weights file into gpu_0/res2_0_branch2a_w: (64, 64, 1, 1)
INFO net.py: 91: res2_0_branch2a_bn_s loaded from weights file into gpu_0/res2_0_branch2a_bn_s: (64,)
INFO net.py: 91: res2_0_branch2a_bn_b loaded from weights file into gpu_0/res2_0_branch2a_bn_b: (64,)
INFO net.py: 91: res2_0_branch2b_w loaded from weights file into gpu_0/res2_0_branch2b_w: (64, 64, 3, 3)
INFO net.py: 91: res2_0_branch2b_bn_s loaded from weights file into gpu_0/res2_0_branch2b_bn_s: (64,)
INFO net.py: 91: res2_0_branch2b_bn_b loaded from weights file into gpu_0/res2_0_branch2b_bn_b: (64,)
INFO net.py: 91: res2_0_branch2c_w loaded from weights file into gpu_0/res2_0_branch2c_w: (256, 64, 1, 1)
INFO net.py: 91: res2_0_branch2c_bn_s loaded from weights file into gpu_0/res2_0_branch2c_bn_s: (256,)
INFO net.py: 91: res2_0_branch2c_bn_b loaded from weights file into gpu_0/res2_0_branch2c_bn_b: (256,)
INFO net.py: 91: res2_0_branch1_w loaded from weights file into gpu_0/res2_0_branch1_w: (256, 64, 1, 1)
INFO net.py: 91: res2_0_branch1_bn_s loaded from weights file into gpu_0/res2_0_branch1_bn_s: (256,)
INFO net.py: 91: res2_0_branch1_bn_b loaded from weights file into gpu_0/res2_0_branch1_bn_b: (256,)
INFO net.py: 91: res2_1_branch2a_w loaded from weights file into gpu_0/res2_1_branch2a_w: (64, 256, 1, 1)
INFO net.py: 91: res2_1_branch2a_bn_s loaded from weights file into gpu_0/res2_1_branch2a_bn_s: (64,)
INFO net.py: 91: res2_1_branch2a_bn_b loaded from weights file into gpu_0/res2_1_branch2a_bn_b: (64,)
INFO net.py: 91: res2_1_branch2b_w loaded from weights file into gpu_0/res2_1_branch2b_w: (64, 64, 3, 3)
INFO net.py: 91: res2_1_branch2b_bn_s loaded from weights file into gpu_0/res2_1_branch2b_bn_s: (64,)
INFO net.py: 91: res2_1_branch2b_bn_b loaded from weights file into gpu_0/res2_1_branch2b_bn_b: (64,)
INFO net.py: 91: res2_1_branch2c_w loaded from weights file into gpu_0/res2_1_branch2c_w: (256, 64, 1, 1)
INFO net.py: 91: res2_1_branch2c_bn_s loaded from weights file into gpu_0/res2_1_branch2c_bn_s: (256,)
INFO net.py: 91: res2_1_branch2c_bn_b loaded from weights file into gpu_0/res2_1_branch2c_bn_b: (256,)
INFO net.py: 91: res2_2_branch2a_w loaded from weights file into gpu_0/res2_2_branch2a_w: (64, 256, 1, 1)
INFO net.py: 91: res2_2_branch2a_bn_s loaded from weights file into gpu_0/res2_2_branch2a_bn_s: (64,)
INFO net.py: 91: res2_2_branch2a_bn_b loaded from weights file into gpu_0/res2_2_branch2a_bn_b: (64,)
INFO net.py: 91: res2_2_branch2b_w loaded from weights file into gpu_0/res2_2_branch2b_w: (64, 64, 3, 3)
INFO net.py: 91: res2_2_branch2b_bn_s loaded from weights file into gpu_0/res2_2_branch2b_bn_s: (64,)
INFO net.py: 91: res2_2_branch2b_bn_b loaded from weights file into gpu_0/res2_2_branch2b_bn_b: (64,)
INFO net.py: 91: res2_2_branch2c_w loaded from weights file into gpu_0/res2_2_branch2c_w: (256, 64, 1, 1)
INFO net.py: 91: res2_2_branch2c_bn_s loaded from weights file into gpu_0/res2_2_branch2c_bn_s: (256,)
INFO net.py: 91: res2_2_branch2c_bn_b loaded from weights file into gpu_0/res2_2_branch2c_bn_b: (256,)
INFO net.py: 91: res3_0_branch2a_w loaded from weights file into gpu_0/res3_0_branch2a_w: (128, 256, 1, 1)
INFO net.py: 91: res3_0_branch2a_bn_s loaded from weights file into gpu_0/res3_0_branch2a_bn_s: (128,)
INFO net.py: 91: res3_0_branch2a_bn_b loaded from weights file into gpu_0/res3_0_branch2a_bn_b: (128,)
INFO net.py: 91: res3_0_branch2b_w loaded from weights file into gpu_0/res3_0_branch2b_w: (128, 128, 3, 3)
INFO net.py: 91: res3_0_branch2b_bn_s loaded from weights file into gpu_0/res3_0_branch2b_bn_s: (128,)
INFO net.py: 91: res3_0_branch2b_bn_b loaded from weights file into gpu_0/res3_0_branch2b_bn_b: (128,)
INFO net.py: 91: res3_0_branch2c_w loaded from weights file into gpu_0/res3_0_branch2c_w: (512, 128, 1, 1)
INFO net.py: 91: res3_0_branch2c_bn_s loaded from weights file into gpu_0/res3_0_branch2c_bn_s: (512,)
INFO net.py: 91: res3_0_branch2c_bn_b loaded from weights file into gpu_0/res3_0_branch2c_bn_b: (512,)
INFO net.py: 91: res3_0_branch1_w loaded from weights file into gpu_0/res3_0_branch1_w: (512, 256, 1, 1)
INFO net.py: 91: res3_0_branch1_bn_s loaded from weights file into gpu_0/res3_0_branch1_bn_s: (512,)
INFO net.py: 91: res3_0_branch1_bn_b loaded from weights file into gpu_0/res3_0_branch1_bn_b: (512,)
INFO net.py: 91: res3_1_branch2a_w loaded from weights file into gpu_0/res3_1_branch2a_w: (128, 512, 1, 1)
INFO net.py: 91: res3_1_branch2a_bn_s loaded from weights file into gpu_0/res3_1_branch2a_bn_s: (128,)
INFO net.py: 91: res3_1_branch2a_bn_b loaded from weights file into gpu_0/res3_1_branch2a_bn_b: (128,)
INFO net.py: 91: res3_1_branch2b_w loaded from weights file into gpu_0/res3_1_branch2b_w: (128, 128, 3, 3)
INFO net.py: 91: res3_1_branch2b_bn_s loaded from weights file into gpu_0/res3_1_branch2b_bn_s: (128,)
INFO net.py: 91: res3_1_branch2b_bn_b loaded from weights file into gpu_0/res3_1_branch2b_bn_b: (128,)
INFO net.py: 91: res3_1_branch2c_w loaded from weights file into gpu_0/res3_1_branch2c_w: (512, 128, 1, 1)
INFO net.py: 91: res3_1_branch2c_bn_s loaded from weights file into gpu_0/res3_1_branch2c_bn_s: (512,)
INFO net.py: 91: res3_1_branch2c_bn_b loaded from weights file into gpu_0/res3_1_branch2c_bn_b: (512,)
INFO net.py: 91: res3_2_branch2a_w loaded from weights file into gpu_0/res3_2_branch2a_w: (128, 512, 1, 1)
INFO net.py: 91: res3_2_branch2a_bn_s loaded from weights file into gpu_0/res3_2_branch2a_bn_s: (128,)
INFO net.py: 91: res3_2_branch2a_bn_b loaded from weights file into gpu_0/res3_2_branch2a_bn_b: (128,)
INFO net.py: 91: res3_2_branch2b_w loaded from weights file into gpu_0/res3_2_branch2b_w: (128, 128, 3, 3)
INFO net.py: 91: res3_2_branch2b_bn_s loaded from weights file into gpu_0/res3_2_branch2b_bn_s: (128,)
INFO net.py: 91: res3_2_branch2b_bn_b loaded from weights file into gpu_0/res3_2_branch2b_bn_b: (128,)
INFO net.py: 91: res3_2_branch2c_w loaded from weights file into gpu_0/res3_2_branch2c_w: (512, 128, 1, 1)
INFO net.py: 91: res3_2_branch2c_bn_s loaded from weights file into gpu_0/res3_2_branch2c_bn_s: (512,)
INFO net.py: 91: res3_2_branch2c_bn_b loaded from weights file into gpu_0/res3_2_branch2c_bn_b: (512,)
INFO net.py: 91: res3_3_branch2a_w loaded from weights file into gpu_0/res3_3_branch2a_w: (128, 512, 1, 1)
INFO net.py: 91: res3_3_branch2a_bn_s loaded from weights file into gpu_0/res3_3_branch2a_bn_s: (128,)
INFO net.py: 91: res3_3_branch2a_bn_b loaded from weights file into gpu_0/res3_3_branch2a_bn_b: (128,)
INFO net.py: 91: res3_3_branch2b_w loaded from weights file into gpu_0/res3_3_branch2b_w: (128, 128, 3, 3)
INFO net.py: 91: res3_3_branch2b_bn_s loaded from weights file into gpu_0/res3_3_branch2b_bn_s: (128,)
INFO net.py: 91: res3_3_branch2b_bn_b loaded from weights file into gpu_0/res3_3_branch2b_bn_b: (128,)
INFO net.py: 91: res3_3_branch2c_w loaded from weights file into gpu_0/res3_3_branch2c_w: (512, 128, 1, 1)
INFO net.py: 91: res3_3_branch2c_bn_s loaded from weights file into gpu_0/res3_3_branch2c_bn_s: (512,)
INFO net.py: 91: res3_3_branch2c_bn_b loaded from weights file into gpu_0/res3_3_branch2c_bn_b: (512,)
INFO net.py: 91: res4_0_branch2a_w loaded from weights file into gpu_0/res4_0_branch2a_w: (256, 512, 1, 1)
INFO net.py: 91: res4_0_branch2a_bn_s loaded from weights file into gpu_0/res4_0_branch2a_bn_s: (256,)
INFO net.py: 91: res4_0_branch2a_bn_b loaded from weights file into gpu_0/res4_0_branch2a_bn_b: (256,)
INFO net.py: 91: res4_0_branch2b_w loaded from weights file into gpu_0/res4_0_branch2b_w: (256, 256, 3, 3)
INFO net.py: 91: res4_0_branch2b_bn_s loaded from weights file into gpu_0/res4_0_branch2b_bn_s: (256,)
INFO net.py: 91: res4_0_branch2b_bn_b loaded from weights file into gpu_0/res4_0_branch2b_bn_b: (256,)
INFO net.py: 91: res4_0_branch2c_w loaded from weights file into gpu_0/res4_0_branch2c_w: (1024, 256, 1, 1)
INFO net.py: 91: res4_0_branch2c_bn_s loaded from weights file into gpu_0/res4_0_branch2c_bn_s: (1024,)
INFO net.py: 91: res4_0_branch2c_bn_b loaded from weights file into gpu_0/res4_0_branch2c_bn_b: (1024,)
INFO net.py: 91: res4_0_branch1_w loaded from weights file into gpu_0/res4_0_branch1_w: (1024, 512, 1, 1)
INFO net.py: 91: res4_0_branch1_bn_s loaded from weights file into gpu_0/res4_0_branch1_bn_s: (1024,)
INFO net.py: 91: res4_0_branch1_bn_b loaded from weights file into gpu_0/res4_0_branch1_bn_b: (1024,)
INFO net.py: 91: res4_1_branch2a_w loaded from weights file into gpu_0/res4_1_branch2a_w: (256, 1024, 1, 1)
INFO net.py: 91: res4_1_branch2a_bn_s loaded from weights file into gpu_0/res4_1_branch2a_bn_s: (256,)
INFO net.py: 91: res4_1_branch2a_bn_b loaded from weights file into gpu_0/res4_1_branch2a_bn_b: (256,)
INFO net.py: 91: res4_1_branch2b_w loaded from weights file into gpu_0/res4_1_branch2b_w: (256, 256, 3, 3)
INFO net.py: 91: res4_1_branch2b_bn_s loaded from weights file into gpu_0/res4_1_branch2b_bn_s: (256,)
INFO net.py: 91: res4_1_branch2b_bn_b loaded from weights file into gpu_0/res4_1_branch2b_bn_b: (256,)
INFO net.py: 91: res4_1_branch2c_w loaded from weights file into gpu_0/res4_1_branch2c_w: (1024, 256, 1, 1)
INFO net.py: 91: res4_1_branch2c_bn_s loaded from weights file into gpu_0/res4_1_branch2c_bn_s: (1024,)
INFO net.py: 91: res4_1_branch2c_bn_b loaded from weights file into gpu_0/res4_1_branch2c_bn_b: (1024,)
INFO net.py: 91: res4_2_branch2a_w loaded from weights file into gpu_0/res4_2_branch2a_w: (256, 1024, 1, 1)
INFO net.py: 91: res4_2_branch2a_bn_s loaded from weights file into gpu_0/res4_2_branch2a_bn_s: (256,)
INFO net.py: 91: res4_2_branch2a_bn_b loaded from weights file into gpu_0/res4_2_branch2a_bn_b: (256,)
INFO net.py: 91: res4_2_branch2b_w loaded from weights file into gpu_0/res4_2_branch2b_w: (256, 256, 3, 3)
INFO net.py: 91: res4_2_branch2b_bn_s loaded from weights file into gpu_0/res4_2_branch2b_bn_s: (256,)
INFO net.py: 91: res4_2_branch2b_bn_b loaded from weights file into gpu_0/res4_2_branch2b_bn_b: (256,)
INFO net.py: 91: res4_2_branch2c_w loaded from weights file into gpu_0/res4_2_branch2c_w: (1024, 256, 1, 1)
INFO net.py: 91: res4_2_branch2c_bn_s loaded from weights file into gpu_0/res4_2_branch2c_bn_s: (1024,)
INFO net.py: 91: res4_2_branch2c_bn_b loaded from weights file into gpu_0/res4_2_branch2c_bn_b: (1024,)
INFO net.py: 91: res4_3_branch2a_w loaded from weights file into gpu_0/res4_3_branch2a_w: (256, 1024, 1, 1)
INFO net.py: 91: res4_3_branch2a_bn_s loaded from weights file into gpu_0/res4_3_branch2a_bn_s: (256,)
INFO net.py: 91: res4_3_branch2a_bn_b loaded from weights file into gpu_0/res4_3_branch2a_bn_b: (256,)
INFO net.py: 91: res4_3_branch2b_w loaded from weights file into gpu_0/res4_3_branch2b_w: (256, 256, 3, 3)
INFO net.py: 91: res4_3_branch2b_bn_s loaded from weights file into gpu_0/res4_3_branch2b_bn_s: (256,)
INFO net.py: 91: res4_3_branch2b_bn_b loaded from weights file into gpu_0/res4_3_branch2b_bn_b: (256,)
INFO net.py: 91: res4_3_branch2c_w loaded from weights file into gpu_0/res4_3_branch2c_w: (1024, 256, 1, 1)
INFO net.py: 91: res4_3_branch2c_bn_s loaded from weights file into gpu_0/res4_3_branch2c_bn_s: (1024,)
INFO net.py: 91: res4_3_branch2c_bn_b loaded from weights file into gpu_0/res4_3_branch2c_bn_b: (1024,)
INFO net.py: 91: res4_4_branch2a_w loaded from weights file into gpu_0/res4_4_branch2a_w: (256, 1024, 1, 1)
INFO net.py: 91: res4_4_branch2a_bn_s loaded from weights file into gpu_0/res4_4_branch2a_bn_s: (256,)
INFO net.py: 91: res4_4_branch2a_bn_b loaded from weights file into gpu_0/res4_4_branch2a_bn_b: (256,)
INFO net.py: 91: res4_4_branch2b_w loaded from weights file into gpu_0/res4_4_branch2b_w: (256, 256, 3, 3)
INFO net.py: 91: res4_4_branch2b_bn_s loaded from weights file into gpu_0/res4_4_branch2b_bn_s: (256,)
INFO net.py: 91: res4_4_branch2b_bn_b loaded from weights file into gpu_0/res4_4_branch2b_bn_b: (256,)
INFO net.py: 91: res4_4_branch2c_w loaded from weights file into gpu_0/res4_4_branch2c_w: (1024, 256, 1, 1)
INFO net.py: 91: res4_4_branch2c_bn_s loaded from weights file into gpu_0/res4_4_branch2c_bn_s: (1024,)
INFO net.py: 91: res4_4_branch2c_bn_b loaded from weights file into gpu_0/res4_4_branch2c_bn_b: (1024,)
INFO net.py: 91: res4_5_branch2a_w loaded from weights file into gpu_0/res4_5_branch2a_w: (256, 1024, 1, 1)
INFO net.py: 91: res4_5_branch2a_bn_s loaded from weights file into gpu_0/res4_5_branch2a_bn_s: (256,)
INFO net.py: 91: res4_5_branch2a_bn_b loaded from weights file into gpu_0/res4_5_branch2a_bn_b: (256,)
INFO net.py: 91: res4_5_branch2b_w loaded from weights file into gpu_0/res4_5_branch2b_w: (256, 256, 3, 3)
INFO net.py: 91: res4_5_branch2b_bn_s loaded from weights file into gpu_0/res4_5_branch2b_bn_s: (256,)
INFO net.py: 91: res4_5_branch2b_bn_b loaded from weights file into gpu_0/res4_5_branch2b_bn_b: (256,)
INFO net.py: 91: res4_5_branch2c_w loaded from weights file into gpu_0/res4_5_branch2c_w: (1024, 256, 1, 1)
INFO net.py: 91: res4_5_branch2c_bn_s loaded from weights file into gpu_0/res4_5_branch2c_bn_s: (1024,)
INFO net.py: 91: res4_5_branch2c_bn_b loaded from weights file into gpu_0/res4_5_branch2c_bn_b: (1024,)
INFO net.py: 91: res5_0_branch2a_w loaded from weights file into gpu_0/res5_0_branch2a_w: (512, 1024, 1, 1)
INFO net.py: 91: res5_0_branch2a_bn_s loaded from weights file into gpu_0/res5_0_branch2a_bn_s: (512,)
INFO net.py: 91: res5_0_branch2a_bn_b loaded from weights file into gpu_0/res5_0_branch2a_bn_b: (512,)
INFO net.py: 91: res5_0_branch2b_w loaded from weights file into gpu_0/res5_0_branch2b_w: (512, 512, 3, 3)
INFO net.py: 91: res5_0_branch2b_bn_s loaded from weights file into gpu_0/res5_0_branch2b_bn_s: (512,)
INFO net.py: 91: res5_0_branch2b_bn_b loaded from weights file into gpu_0/res5_0_branch2b_bn_b: (512,)
INFO net.py: 91: res5_0_branch2c_w loaded from weights file into gpu_0/res5_0_branch2c_w: (2048, 512, 1, 1)
INFO net.py: 91: res5_0_branch2c_bn_s loaded from weights file into gpu_0/res5_0_branch2c_bn_s: (2048,)
INFO net.py: 91: res5_0_branch2c_bn_b loaded from weights file into gpu_0/res5_0_branch2c_bn_b: (2048,)
INFO net.py: 91: res5_0_branch1_w loaded from weights file into gpu_0/res5_0_branch1_w: (2048, 1024, 1, 1)
INFO net.py: 91: res5_0_branch1_bn_s loaded from weights file into gpu_0/res5_0_branch1_bn_s: (2048,)
INFO net.py: 91: res5_0_branch1_bn_b loaded from weights file into gpu_0/res5_0_branch1_bn_b: (2048,)
INFO net.py: 91: res5_1_branch2a_w loaded from weights file into gpu_0/res5_1_branch2a_w: (512, 2048, 1, 1)
INFO net.py: 91: res5_1_branch2a_bn_s loaded from weights file into gpu_0/res5_1_branch2a_bn_s: (512,)
INFO net.py: 91: res5_1_branch2a_bn_b loaded from weights file into gpu_0/res5_1_branch2a_bn_b: (512,)
INFO net.py: 91: res5_1_branch2b_w loaded from weights file into gpu_0/res5_1_branch2b_w: (512, 512, 3, 3)
INFO net.py: 91: res5_1_branch2b_bn_s loaded from weights file into gpu_0/res5_1_branch2b_bn_s: (512,)
INFO net.py: 91: res5_1_branch2b_bn_b loaded from weights file into gpu_0/res5_1_branch2b_bn_b: (512,)
INFO net.py: 91: res5_1_branch2c_w loaded from weights file into gpu_0/res5_1_branch2c_w: (2048, 512, 1, 1)
INFO net.py: 91: res5_1_branch2c_bn_s loaded from weights file into gpu_0/res5_1_branch2c_bn_s: (2048,)
INFO net.py: 91: res5_1_branch2c_bn_b loaded from weights file into gpu_0/res5_1_branch2c_bn_b: (2048,)
INFO net.py: 91: res5_2_branch2a_w loaded from weights file into gpu_0/res5_2_branch2a_w: (512, 2048, 1, 1)
INFO net.py: 91: res5_2_branch2a_bn_s loaded from weights file into gpu_0/res5_2_branch2a_bn_s: (512,)
INFO net.py: 91: res5_2_branch2a_bn_b loaded from weights file into gpu_0/res5_2_branch2a_bn_b: (512,)
INFO net.py: 91: res5_2_branch2b_w loaded from weights file into gpu_0/res5_2_branch2b_w: (512, 512, 3, 3)
INFO net.py: 91: res5_2_branch2b_bn_s loaded from weights file into gpu_0/res5_2_branch2b_bn_s: (512,)
INFO net.py: 91: res5_2_branch2b_bn_b loaded from weights file into gpu_0/res5_2_branch2b_bn_b: (512,)
INFO net.py: 91: res5_2_branch2c_w loaded from weights file into gpu_0/res5_2_branch2c_w: (2048, 512, 1, 1)
INFO net.py: 91: res5_2_branch2c_bn_s loaded from weights file into gpu_0/res5_2_branch2c_bn_s: (2048,)
INFO net.py: 91: res5_2_branch2c_bn_b loaded from weights file into gpu_0/res5_2_branch2c_bn_b: (2048,)
INFO net.py: 83: fpn_inner_res5_2_sum_w not found
INFO net.py: 83: fpn_inner_res5_2_sum_b not found
INFO net.py: 83: fpn_inner_res4_5_sum_lateral_w not found
INFO net.py: 83: fpn_inner_res4_5_sum_lateral_b not found
INFO net.py: 83: fpn_inner_res3_3_sum_lateral_w not found
INFO net.py: 83: fpn_inner_res3_3_sum_lateral_b not found
INFO net.py: 83: fpn_inner_res2_2_sum_lateral_w not found
INFO net.py: 83: fpn_inner_res2_2_sum_lateral_b not found
INFO net.py: 83: fpn_res5_2_sum_w not found
INFO net.py: 83: fpn_res5_2_sum_b not found
INFO net.py: 83: fpn_res4_5_sum_w not found
INFO net.py: 83: fpn_res4_5_sum_b not found
INFO net.py: 83: fpn_res3_3_sum_w not found
INFO net.py: 83: fpn_res3_3_sum_b not found
INFO net.py: 83: fpn_res2_2_sum_w not found
INFO net.py: 83: fpn_res2_2_sum_b not found
INFO net.py: 83: fc6_w not found
INFO net.py: 83: fc6_b not found
INFO net.py: 83: fc7_w not found
INFO net.py: 83: fc7_b not found
INFO net.py: 83: cls_score_w not found
INFO net.py: 83: cls_score_b not found
INFO net.py: 83: bbox_pred_w not found
INFO net.py: 83: bbox_pred_b not found
INFO net.py: 83: conv_fcn1_w not found
INFO net.py: 83: conv_fcn1_b not found
INFO net.py: 83: conv_fcn2_w not found
INFO net.py: 83: conv_fcn2_b not found
INFO net.py: 83: conv_fcn3_w not found
INFO net.py: 83: conv_fcn3_b not found
INFO net.py: 83: conv_fcn4_w not found
INFO net.py: 83: conv_fcn4_b not found
INFO net.py: 83: conv_fcn5_w not found
INFO net.py: 83: conv_fcn5_b not found
INFO net.py: 83: conv_fcn6_w not found
INFO net.py: 83: conv_fcn6_b not found
INFO net.py: 83: conv_fcn7_w not found
INFO net.py: 83: conv_fcn7_b not found
INFO net.py: 83: conv_fcn8_w not found
INFO net.py: 83: conv_fcn8_b not found
INFO net.py: 83: kps_score_lowres_w not found
INFO net.py: 83: kps_score_lowres_b not found
INFO net.py: 83: kps_score_w not found
INFO net.py: 83: kps_score_b not found
INFO net.py: 125: res2_1_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res3_1_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res4_2_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res4_0_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res2_2_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res3_3_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res5_1_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res3_3_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res4_4_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res4_5_branch2b_b preserved in workspace (unused)
INFO net.py: 125: conv1_b preserved in workspace (unused)
INFO net.py: 125: fc1000_b preserved in workspace (unused)
INFO net.py: 125: fc1000_w preserved in workspace (unused)
INFO net.py: 125: res3_2_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res3_2_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res2_0_branch1_b preserved in workspace (unused)
INFO net.py: 125: res4_2_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res2_1_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res5_0_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res4_5_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res4_1_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res4_3_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res4_0_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res4_2_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res2_0_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res4_0_branch1_b preserved in workspace (unused)
INFO net.py: 125: res2_2_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res3_2_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res3_0_branch1_b preserved in workspace (unused)
INFO net.py: 125: res3_1_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res2_0_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res2_1_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res4_1_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res4_0_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res4_1_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res2_2_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res5_2_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res4_5_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res3_0_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res3_1_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res5_1_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res5_1_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res4_4_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res5_2_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res3_3_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res4_4_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res4_3_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res5_0_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res5_2_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res5_0_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res3_0_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res5_0_branch1_b preserved in workspace (unused)
INFO net.py: 125: res3_0_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res2_0_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res4_3_branch2c_b preserved in workspace (unused)
I0124 12:11:30.604378 26977 net_dag_utils.cc:118] Operator graph pruning prior to chain compute took: 9.9979e-05 secs
I0124 12:11:30.604557 26977 net_dag.cc:61] Number of parallel execution chains 36 Number of operators = 201
I0124 12:11:30.618330 26977 net_dag_utils.cc:118] Operator graph pruning prior to chain compute took: 9.0454e-05 secs
I0124 12:11:30.618464 26977 net_dag.cc:61] Number of parallel execution chains 30 Number of operators = 188
I0124 12:11:30.620652 26977 net_dag_utils.cc:118] Operator graph pruning prior to chain compute took: 1.4322e-05 secs
I0124 12:11:30.620702 26977 net_dag.cc:61] Number of parallel execution chains 5 Number of operators = 24
INFO infer_simple.py: 113: Processing demo/66e75fd6dd47431b9be184abd3829b97_th.jpg -> /tmp/detectron-visualizations/66e75fd6dd47431b9be184abd3829b97_th.jpg
Traceback (most recent call last):
File "tools/infer_simple.py", line 150, in
main(args)
File "tools/infer_simple.py", line 120, in main
model, im, None, timers=timers
File "/export/huangzhibiao/code/Detectron/lib/core/test.py", line 57, in im_detect_all
scores, boxes, im_scales = im_detect_bbox_aug(model, im, box_proposals)
File "/export/huangzhibiao/code/Detectron/lib/core/test.py", line 216, in im_detect_bbox_aug
model, im, box_proposals
File "/export/huangzhibiao/code/Detectron/lib/core/test.py", line 289, in im_detect_bbox_hflip
box_proposals_hf = box_utils.flip_boxes(box_proposals, im_width)
File "/export/huangzhibiao/code/Detectron/lib/utils/boxes.py", line 248, in flip_boxes
boxes_flipped = boxes.copy()
AttributeError: 'NoneType' object has no attribute 'copy'

CPU only?

How would I train the model with no GPU's. I am on a system with no GPU's, however, I have access to more than 16 CPU's.
Would the instructions be similar, to those for faster-rcnn?
Thank you.

"
Set USE_GPU_NMS in ./lib/fast_rcnn/config.py (or your YAML file) to False.
In ./tools/test_net.py / train_net.py, replace caffe.set_mode_gpu() with caffe_set_mode_cpu().
Plus, if you do not have a GPU, you can compile Caffe in CPU_ONLY mode (and also ignore the GPU nms code).
"

rbgirshick/py-faster-rcnn#123

What does mask r-cnn's AP, AP50, AP70 mean?

Hi.

I'm novice on r-cnn.There are term AP, AP50, AP75 on mask r-cnn paper. 50, 75 is small postfix, but I can't make it small, sorry. Anyway the paper says it is averaged over IOU thresholds. For AP50, only candidates over 50% region comparing ground truth are counted, and for AP75 only candidate over 75% are counted. Then what is empty AP? I knew AP use 70% IoU threshold, but it wouldn't. Because just AP is lower then AP75.

And additionally, there are another terms I don't understand well. They are APs, m, L. I know they mean small, medium, large. Then is there any criteria how big they are. Just saying small, medium, large makes me little bit confused.

Thanks in advance!

Custom dataset without segmentations

Is there a way to run a custom dataset that only has bounding boxes? I have the Wider Face dataset in COCO api json format, but it won't train without a segmentation field in annotations. I had to use two work arounds:

  1. Use annotation['segmenation'] = 0 and annotation['area'] = bbox_height * bbox_width (and of course leaving TRAIN.GT_MIN_AREA = -1)
  2. To allow TRAIN.USE_FLIPPED = True, Detectron/lib/datasets/roidb.py had to have some code commented out in this function:
def extend_with_flipped_entries(roidb, dataset):
    """Flip each entry in the given roidb and return a new roidb that is the
    concatenation of the original roidb and the flipped entries.
    "Flipping" an entry means that that image and associated metadata (e.g.,
    ground truth boxes and object proposals) are horizontally flipped.
    """
    flipped_roidb = []
    for entry in roidb:
        width = entry['width']
        boxes = entry['boxes'].copy()
        oldx1 = boxes[:, 0].copy()
        oldx2 = boxes[:, 2].copy()
        boxes[:, 0] = width - oldx2 - 1
        boxes[:, 2] = width - oldx1 - 1
        assert (boxes[:, 2] >= boxes[:, 0]).all()
        flipped_entry = {}
        dont_copy = ('boxes', 'segms', 'gt_keypoints', 'flipped')
        for k, v in entry.items():
            if k not in dont_copy:
                flipped_entry[k] = v
        flipped_entry['boxes'] = boxes
        ### commenting out to allow flipping for datasets without segmentations annotated
        #flipped_entry['segms'] = segm_utils.flip_segms(
        #   entry['segms'], entry['height'], entry['width']
        #)
        if dataset.keypoints is not None:
            flipped_entry['gt_keypoints'] = keypoint_utils.flip_keypoints(
                dataset.keypoints, dataset.keypoint_flip_map,
                entry['gt_keypoints'], entry['width']
            )
        flipped_entry['flipped'] = True
        flipped_roidb.append(flipped_entry)
    roidb.extend(flipped_roidb)

With those two adjustments the code runs beautifully. Is there a flag or config param that I am missing, or an easier way to run datasets with only bboxes?

Thank you for the code and the docker version!

Inference Time Explaination

Inference times are often expressed as "X + Y", in which X is time taken in reasonably well-optimized GPU code and Y is time taken in unoptimized CPU code. (The CPU code time could be reduced substantially with additional engineering.)

Isn't it the other way around? X is always > Y in the tables.

write detection results?

Hi, Where should I look into if I want to write detection results to a txt file?

Also, why did you choose PDF as default output format?

thank you for your work.

issue with segmentation/detection results

I'm not able to reproduce segmentation/detection results for R101-FPN-2x model:
python2 tools/test_net.py
--cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml
TEST.WEIGHTS https://s3-us-west-2.amazonaws.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl
NUM_GPUS 1

The expected segs mAP must be around ~0.35 - that's what I get when I run masks from MODEL_ZOO for this particular model on COCO-API
but from the results running the above command gives this:
Running per image evaluation...
Evaluate annotation type segm
DONE (t=21.18s).
Accumulating evaluation results...
DONE (t=2.23s).
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.000
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.001
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.001
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.001
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.001
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.001
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.002
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.003
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.003
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.005
Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.005
Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.002

I believe the dataset is right - it reads coco_2014_minival - 5000 imgs.

I don't see where the bug. Kindly help.

multi-GPU training throw an illegal memory access

When I use one GPU to train, there is no problem. But when I use two or four GPUs, the problem come out. The log output:

terminate called after throwing an instance of 'caffe2::EnforceNotMet'
what(): [enforce fail at context_gpu.h:170] . Encountered CUDA error: an illegal memory access was encountered Error from operator:
input: "gpu_0/rpn_cls_logits_fpn2_w_grad" input: "gpu_1/rpn_cls_logits_fpn2_w_grad" output: "gpu_0/rpn_cls_logits_fpn2_w_grad" name: "" type: "Add" device_option { device_type: 1 cuda_gpu_id: 0 }
*** Aborted at 1516866180 (unix time) try "date -d @1516866180" if you are using GNU date ***
terminate called recursively
terminate called recursively
terminate called recursively
PC: @ 0x7ff67559f428 gsignal
terminate called recursively
terminate called recursively
E0125 07:43:00.745853 55683 pybind_state.h:422] Exception encountered running PythonOp function: RuntimeError: [enforce fail at context_gpu.h:307] error == cudaSuccess. 77 vs 0. Error at: /mnt/hzhida/project/caffe2/caffe2/core/context_gpu.h:307: an illegal memory access was encountered

At:
/mnt/hzhida/facebook/detectron/lib/ops/generate_proposals.py(101): forward
*** SIGABRT (@0x3e80000d84f) received by PID 55375 (TID 0x7ff453fff700) from PID 55375; stack trace: ***
terminate called recursively
@ 0x7ff675945390 (unknown)
@ 0x7ff67559f428 gsignal
@ 0x7ff6755a102a abort
@ 0x7ff66f37e84d __gnu_cxx::__verbose_terminate_handler()
@ 0x7ff66f37c6b6 (unknown)
@ 0x7ff66f37c701 std::terminate()
@ 0x7ff66f3a7d38 (unknown)
@ 0x7ff67593b6ba start_thread
@ 0x7ff67567141d clone
@ 0x0 (unknown)
Aborted (core dumped)

infer.py and infer_simple.py do not support RetinaNet (was: Can't load RetinaNet for inference)

Hi, first of all, thanks for releasing all of these wonderful models.

I succeeded in running inference code using Mask RCNN following the tutorial.

python2 tools/infer_simple.py \
    --cfg configs/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml \
    --output-dir /tmp/detectron-visualizations \
    --image-ext jpg \
    --wts https://s3-us-west-2.amazonaws.com/detectron/35861858/12_2017_baselines/e2e_mask_rcnn_R-101-FPN_2x.yaml.02_32_51.SgT4y1cO/output/train/coco_2014_train:coco_2014_valminusminival/generalized_rcnn/model_final.pkl \
    demo

But when I tried to run inference code using RetinaNet.

python2 tools/infer_simple.py \
  --cfg configs/12_2017_baselines/retinanet_R-50-FPN_1x.yaml \
  --output-dir /tmp/detectron-visualizations \
  --image-ext jpg \
  --wts https://s3-us-west-2.amazonaws.com/detectron/36768636/12_2017_baselines/retinanet_R-50-FPN_1x.yaml.08_29_48.t4zc9clc/output/train/coco_2014_train:coco_2014_valminusminival/retinanet/model_final.pkl \
  demo

I received the following error:

Traceback (most recent call last):
  File "tools/infer_simple.py", line 147, in <module>
    main(args)
  File "tools/infer_simple.py", line 99, in main
    model = infer_engine.initialize_model_from_cfg()
  File "/home/ecli/detectron/lib/core/test_engine.py", line 226, in initialize_model_from_cfg
    workspace.CreateNet(model.conv_body_net)
  File "/usr/local/caffe2/python/model_helper.py", line 468, in __getattr__
    ','.join(workspace.C.nearby_opnames(op_type)) + ']'
AttributeError: Method conv_body_net is not a registered operator. Did you mean: []

Any help would be greatly appreciated. Thanks a lot!

For your reference, I will attach the entire output on my terminal:

E0124 15:09:23.594583 23889 init_intrinsics_check.cc:54] CPU feature avx is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
E0124 15:09:23.594600 23889 init_intrinsics_check.cc:54] CPU feature avx2 is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
E0124 15:09:23.594604 23889 init_intrinsics_check.cc:54] CPU feature fma is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
WARNING cnn.py:  40: [====DEPRECATE WARNING====]: you are creating an object from CNNModelHelper class which will be deprecated soon. Please use ModelHelper object with brew module. For more information, please refer to caffe2.ai and python/brew.py, python/brew_test.py for more information.
INFO net.py:  54: Loading from: /tmp/detectron-download-cache/36768636/12_2017_baselines/retinanet_R-50-FPN_1x.yaml.08_29_48.t4zc9clc/output/train/coco_2014_train:coco_2014_valminusminival/retinanet/model_final.pkl
INFO net.py:  91: conv1_w loaded from weights file into gpu_0/conv1_w: (64, 3, 7, 7)
INFO net.py:  91: res_conv1_bn_s loaded from weights file into gpu_0/res_conv1_bn_s: (64,)
INFO net.py:  91: res_conv1_bn_b loaded from weights file into gpu_0/res_conv1_bn_b: (64,)
INFO net.py:  91: res2_0_branch2a_w loaded from weights file into gpu_0/res2_0_branch2a_w: (64, 64, 1, 1)
INFO net.py:  91: res2_0_branch2a_bn_s loaded from weights file into gpu_0/res2_0_branch2a_bn_s: (64,)
INFO net.py:  91: res2_0_branch2a_bn_b loaded from weights file into gpu_0/res2_0_branch2a_bn_b: (64,)
INFO net.py:  91: res2_0_branch2b_w loaded from weights file into gpu_0/res2_0_branch2b_w: (64, 64, 3, 3)
INFO net.py:  91: res2_0_branch2b_bn_s loaded from weights file into gpu_0/res2_0_branch2b_bn_s: (64,)
INFO net.py:  91: res2_0_branch2b_bn_b loaded from weights file into gpu_0/res2_0_branch2b_bn_b: (64,)
INFO net.py:  91: res2_0_branch2c_w loaded from weights file into gpu_0/res2_0_branch2c_w: (256, 64, 1, 1)
INFO net.py:  91: res2_0_branch2c_bn_s loaded from weights file into gpu_0/res2_0_branch2c_bn_s: (256,)
INFO net.py:  91: res2_0_branch2c_bn_b loaded from weights file into gpu_0/res2_0_branch2c_bn_b: (256,)
INFO net.py:  91: res2_0_branch1_w loaded from weights file into gpu_0/res2_0_branch1_w: (256, 64, 1, 1)
INFO net.py:  91: res2_0_branch1_bn_s loaded from weights file into gpu_0/res2_0_branch1_bn_s: (256,)
INFO net.py:  91: res2_0_branch1_bn_b loaded from weights file into gpu_0/res2_0_branch1_bn_b: (256,)
INFO net.py:  91: res2_1_branch2a_w loaded from weights file into gpu_0/res2_1_branch2a_w: (64, 256, 1, 1)
INFO net.py:  91: res2_1_branch2a_bn_s loaded from weights file into gpu_0/res2_1_branch2a_bn_s: (64,)
INFO net.py:  91: res2_1_branch2a_bn_b loaded from weights file into gpu_0/res2_1_branch2a_bn_b: (64,)
INFO net.py:  91: res2_1_branch2b_w loaded from weights file into gpu_0/res2_1_branch2b_w: (64, 64, 3, 3)
INFO net.py:  91: res2_1_branch2b_bn_s loaded from weights file into gpu_0/res2_1_branch2b_bn_s: (64,)
INFO net.py:  91: res2_1_branch2b_bn_b loaded from weights file into gpu_0/res2_1_branch2b_bn_b: (64,)
INFO net.py:  91: res2_1_branch2c_w loaded from weights file into gpu_0/res2_1_branch2c_w: (256, 64, 1, 1)
INFO net.py:  91: res2_1_branch2c_bn_s loaded from weights file into gpu_0/res2_1_branch2c_bn_s: (256,)
INFO net.py:  91: res2_1_branch2c_bn_b loaded from weights file into gpu_0/res2_1_branch2c_bn_b: (256,)
INFO net.py:  91: res2_2_branch2a_w loaded from weights file into gpu_0/res2_2_branch2a_w: (64, 256, 1, 1)
INFO net.py:  91: res2_2_branch2a_bn_s loaded from weights file into gpu_0/res2_2_branch2a_bn_s: (64,)
INFO net.py:  91: res2_2_branch2a_bn_b loaded from weights file into gpu_0/res2_2_branch2a_bn_b: (64,)
INFO net.py:  91: res2_2_branch2b_w loaded from weights file into gpu_0/res2_2_branch2b_w: (64, 64, 3, 3)
INFO net.py:  91: res2_2_branch2b_bn_s loaded from weights file into gpu_0/res2_2_branch2b_bn_s: (64,)
INFO net.py:  91: res2_2_branch2b_bn_b loaded from weights file into gpu_0/res2_2_branch2b_bn_b: (64,)
INFO net.py:  91: res2_2_branch2c_w loaded from weights file into gpu_0/res2_2_branch2c_w: (256, 64, 1, 1)
INFO net.py:  91: res2_2_branch2c_bn_s loaded from weights file into gpu_0/res2_2_branch2c_bn_s: (256,)
INFO net.py:  91: res2_2_branch2c_bn_b loaded from weights file into gpu_0/res2_2_branch2c_bn_b: (256,)
INFO net.py:  91: res3_0_branch2a_w [+ momentum] loaded from weights file into gpu_0/res3_0_branch2a_w: (128, 256, 1, 1)
INFO net.py:  91: res3_0_branch2a_bn_s loaded from weights file into gpu_0/res3_0_branch2a_bn_s: (128,)
INFO net.py:  91: res3_0_branch2a_bn_b loaded from weights file into gpu_0/res3_0_branch2a_bn_b: (128,)
INFO net.py:  91: res3_0_branch2b_w [+ momentum] loaded from weights file into gpu_0/res3_0_branch2b_w: (128, 128, 3, 3)
INFO net.py:  91: res3_0_branch2b_bn_s loaded from weights file into gpu_0/res3_0_branch2b_bn_s: (128,)
INFO net.py:  91: res3_0_branch2b_bn_b loaded from weights file into gpu_0/res3_0_branch2b_bn_b: (128,)
INFO net.py:  91: res3_0_branch2c_w [+ momentum] loaded from weights file into gpu_0/res3_0_branch2c_w: (512, 128, 1, 1)
INFO net.py:  91: res3_0_branch2c_bn_s loaded from weights file into gpu_0/res3_0_branch2c_bn_s: (512,)
INFO net.py:  91: res3_0_branch2c_bn_b loaded from weights file into gpu_0/res3_0_branch2c_bn_b: (512,)
INFO net.py:  91: res3_0_branch1_w [+ momentum] loaded from weights file into gpu_0/res3_0_branch1_w: (512, 256, 1, 1)
INFO net.py:  91: res3_0_branch1_bn_s loaded from weights file into gpu_0/res3_0_branch1_bn_s: (512,)
INFO net.py:  91: res3_0_branch1_bn_b loaded from weights file into gpu_0/res3_0_branch1_bn_b: (512,)
INFO net.py:  91: res3_1_branch2a_w [+ momentum] loaded from weights file into gpu_0/res3_1_branch2a_w: (128, 512, 1, 1)
INFO net.py:  91: res3_1_branch2a_bn_s loaded from weights file into gpu_0/res3_1_branch2a_bn_s: (128,)
INFO net.py:  91: res3_1_branch2a_bn_b loaded from weights file into gpu_0/res3_1_branch2a_bn_b: (128,)
INFO net.py:  91: res3_1_branch2b_w [+ momentum] loaded from weights file into gpu_0/res3_1_branch2b_w: (128, 128, 3, 3)
INFO net.py:  91: res3_1_branch2b_bn_s loaded from weights file into gpu_0/res3_1_branch2b_bn_s: (128,)
INFO net.py:  91: res3_1_branch2b_bn_b loaded from weights file into gpu_0/res3_1_branch2b_bn_b: (128,)
INFO net.py:  91: res3_1_branch2c_w [+ momentum] loaded from weights file into gpu_0/res3_1_branch2c_w: (512, 128, 1, 1)
INFO net.py:  91: res3_1_branch2c_bn_s loaded from weights file into gpu_0/res3_1_branch2c_bn_s: (512,)
INFO net.py:  91: res3_1_branch2c_bn_b loaded from weights file into gpu_0/res3_1_branch2c_bn_b: (512,)
INFO net.py:  91: res3_2_branch2a_w [+ momentum] loaded from weights file into gpu_0/res3_2_branch2a_w: (128, 512, 1, 1)
INFO net.py:  91: res3_2_branch2a_bn_s loaded from weights file into gpu_0/res3_2_branch2a_bn_s: (128,)
INFO net.py:  91: res3_2_branch2a_bn_b loaded from weights file into gpu_0/res3_2_branch2a_bn_b: (128,)
INFO net.py:  91: res3_2_branch2b_w [+ momentum] loaded from weights file into gpu_0/res3_2_branch2b_w: (128, 128, 3, 3)
INFO net.py:  91: res3_2_branch2b_bn_s loaded from weights file into gpu_0/res3_2_branch2b_bn_s: (128,)
INFO net.py:  91: res3_2_branch2b_bn_b loaded from weights file into gpu_0/res3_2_branch2b_bn_b: (128,)
INFO net.py:  91: res3_2_branch2c_w [+ momentum] loaded from weights file into gpu_0/res3_2_branch2c_w: (512, 128, 1, 1)
INFO net.py:  91: res3_2_branch2c_bn_s loaded from weights file into gpu_0/res3_2_branch2c_bn_s: (512,)
INFO net.py:  91: res3_2_branch2c_bn_b loaded from weights file into gpu_0/res3_2_branch2c_bn_b: (512,)
INFO net.py:  91: res3_3_branch2a_w [+ momentum] loaded from weights file into gpu_0/res3_3_branch2a_w: (128, 512, 1, 1)
INFO net.py:  91: res3_3_branch2a_bn_s loaded from weights file into gpu_0/res3_3_branch2a_bn_s: (128,)
INFO net.py:  91: res3_3_branch2a_bn_b loaded from weights file into gpu_0/res3_3_branch2a_bn_b: (128,)
INFO net.py:  91: res3_3_branch2b_w [+ momentum] loaded from weights file into gpu_0/res3_3_branch2b_w: (128, 128, 3, 3)
INFO net.py:  91: res3_3_branch2b_bn_s loaded from weights file into gpu_0/res3_3_branch2b_bn_s: (128,)
INFO net.py:  91: res3_3_branch2b_bn_b loaded from weights file into gpu_0/res3_3_branch2b_bn_b: (128,)
INFO net.py:  91: res3_3_branch2c_w [+ momentum] loaded from weights file into gpu_0/res3_3_branch2c_w: (512, 128, 1, 1)
INFO net.py:  91: res3_3_branch2c_bn_s loaded from weights file into gpu_0/res3_3_branch2c_bn_s: (512,)
INFO net.py:  91: res3_3_branch2c_bn_b loaded from weights file into gpu_0/res3_3_branch2c_bn_b: (512,)
INFO net.py:  91: res4_0_branch2a_w [+ momentum] loaded from weights file into gpu_0/res4_0_branch2a_w: (256, 512, 1, 1)
INFO net.py:  91: res4_0_branch2a_bn_s loaded from weights file into gpu_0/res4_0_branch2a_bn_s: (256,)
INFO net.py:  91: res4_0_branch2a_bn_b loaded from weights file into gpu_0/res4_0_branch2a_bn_b: (256,)
INFO net.py:  91: res4_0_branch2b_w [+ momentum] loaded from weights file into gpu_0/res4_0_branch2b_w: (256, 256, 3, 3)
INFO net.py:  91: res4_0_branch2b_bn_s loaded from weights file into gpu_0/res4_0_branch2b_bn_s: (256,)
INFO net.py:  91: res4_0_branch2b_bn_b loaded from weights file into gpu_0/res4_0_branch2b_bn_b: (256,)
INFO net.py:  91: res4_0_branch2c_w [+ momentum] loaded from weights file into gpu_0/res4_0_branch2c_w: (1024, 256, 1, 1)
INFO net.py:  91: res4_0_branch2c_bn_s loaded from weights file into gpu_0/res4_0_branch2c_bn_s: (1024,)
INFO net.py:  91: res4_0_branch2c_bn_b loaded from weights file into gpu_0/res4_0_branch2c_bn_b: (1024,)
INFO net.py:  91: res4_0_branch1_w [+ momentum] loaded from weights file into gpu_0/res4_0_branch1_w: (1024, 512, 1, 1)
INFO net.py:  91: res4_0_branch1_bn_s loaded from weights file into gpu_0/res4_0_branch1_bn_s: (1024,)
INFO net.py:  91: res4_0_branch1_bn_b loaded from weights file into gpu_0/res4_0_branch1_bn_b: (1024,)
INFO net.py:  91: res4_1_branch2a_w [+ momentum] loaded from weights file into gpu_0/res4_1_branch2a_w: (256, 1024, 1, 1)
INFO net.py:  91: res4_1_branch2a_bn_s loaded from weights file into gpu_0/res4_1_branch2a_bn_s: (256,)
INFO net.py:  91: res4_1_branch2a_bn_b loaded from weights file into gpu_0/res4_1_branch2a_bn_b: (256,)
INFO net.py:  91: res4_1_branch2b_w [+ momentum] loaded from weights file into gpu_0/res4_1_branch2b_w: (256, 256, 3, 3)
INFO net.py:  91: res4_1_branch2b_bn_s loaded from weights file into gpu_0/res4_1_branch2b_bn_s: (256,)
INFO net.py:  91: res4_1_branch2b_bn_b loaded from weights file into gpu_0/res4_1_branch2b_bn_b: (256,)
INFO net.py:  91: res4_1_branch2c_w [+ momentum] loaded from weights file into gpu_0/res4_1_branch2c_w: (1024, 256, 1, 1)
INFO net.py:  91: res4_1_branch2c_bn_s loaded from weights file into gpu_0/res4_1_branch2c_bn_s: (1024,)
INFO net.py:  91: res4_1_branch2c_bn_b loaded from weights file into gpu_0/res4_1_branch2c_bn_b: (1024,)
INFO net.py:  91: res4_2_branch2a_w [+ momentum] loaded from weights file into gpu_0/res4_2_branch2a_w: (256, 1024, 1, 1)
INFO net.py:  91: res4_2_branch2a_bn_s loaded from weights file into gpu_0/res4_2_branch2a_bn_s: (256,)
INFO net.py:  91: res4_2_branch2a_bn_b loaded from weights file into gpu_0/res4_2_branch2a_bn_b: (256,)
INFO net.py:  91: res4_2_branch2b_w [+ momentum] loaded from weights file into gpu_0/res4_2_branch2b_w: (256, 256, 3, 3)
INFO net.py:  91: res4_2_branch2b_bn_s loaded from weights file into gpu_0/res4_2_branch2b_bn_s: (256,)
INFO net.py:  91: res4_2_branch2b_bn_b loaded from weights file into gpu_0/res4_2_branch2b_bn_b: (256,)
INFO net.py:  91: res4_2_branch2c_w [+ momentum] loaded from weights file into gpu_0/res4_2_branch2c_w: (1024, 256, 1, 1)
INFO net.py:  91: res4_2_branch2c_bn_s loaded from weights file into gpu_0/res4_2_branch2c_bn_s: (1024,)
INFO net.py:  91: res4_2_branch2c_bn_b loaded from weights file into gpu_0/res4_2_branch2c_bn_b: (1024,)
INFO net.py:  91: res4_3_branch2a_w [+ momentum] loaded from weights file into gpu_0/res4_3_branch2a_w: (256, 1024, 1, 1)
INFO net.py:  91: res4_3_branch2a_bn_s loaded from weights file into gpu_0/res4_3_branch2a_bn_s: (256,)
INFO net.py:  91: res4_3_branch2a_bn_b loaded from weights file into gpu_0/res4_3_branch2a_bn_b: (256,)
INFO net.py:  91: res4_3_branch2b_w [+ momentum] loaded from weights file into gpu_0/res4_3_branch2b_w: (256, 256, 3, 3)
INFO net.py:  91: res4_3_branch2b_bn_s loaded from weights file into gpu_0/res4_3_branch2b_bn_s: (256,)
INFO net.py:  91: res4_3_branch2b_bn_b loaded from weights file into gpu_0/res4_3_branch2b_bn_b: (256,)
INFO net.py:  91: res4_3_branch2c_w [+ momentum] loaded from weights file into gpu_0/res4_3_branch2c_w: (1024, 256, 1, 1)
INFO net.py:  91: res4_3_branch2c_bn_s loaded from weights file into gpu_0/res4_3_branch2c_bn_s: (1024,)
INFO net.py:  91: res4_3_branch2c_bn_b loaded from weights file into gpu_0/res4_3_branch2c_bn_b: (1024,)
INFO net.py:  91: res4_4_branch2a_w [+ momentum] loaded from weights file into gpu_0/res4_4_branch2a_w: (256, 1024, 1, 1)
INFO net.py:  91: res4_4_branch2a_bn_s loaded from weights file into gpu_0/res4_4_branch2a_bn_s: (256,)
INFO net.py:  91: res4_4_branch2a_bn_b loaded from weights file into gpu_0/res4_4_branch2a_bn_b: (256,)
INFO net.py:  91: res4_4_branch2b_w [+ momentum] loaded from weights file into gpu_0/res4_4_branch2b_w: (256, 256, 3, 3)
INFO net.py:  91: res4_4_branch2b_bn_s loaded from weights file into gpu_0/res4_4_branch2b_bn_s: (256,)
INFO net.py:  91: res4_4_branch2b_bn_b loaded from weights file into gpu_0/res4_4_branch2b_bn_b: (256,)
INFO net.py:  91: res4_4_branch2c_w [+ momentum] loaded from weights file into gpu_0/res4_4_branch2c_w: (1024, 256, 1, 1)
INFO net.py:  91: res4_4_branch2c_bn_s loaded from weights file into gpu_0/res4_4_branch2c_bn_s: (1024,)
INFO net.py:  91: res4_4_branch2c_bn_b loaded from weights file into gpu_0/res4_4_branch2c_bn_b: (1024,)
INFO net.py:  91: res4_5_branch2a_w [+ momentum] loaded from weights file into gpu_0/res4_5_branch2a_w: (256, 1024, 1, 1)
INFO net.py:  91: res4_5_branch2a_bn_s loaded from weights file into gpu_0/res4_5_branch2a_bn_s: (256,)
INFO net.py:  91: res4_5_branch2a_bn_b loaded from weights file into gpu_0/res4_5_branch2a_bn_b: (256,)
INFO net.py:  91: res4_5_branch2b_w [+ momentum] loaded from weights file into gpu_0/res4_5_branch2b_w: (256, 256, 3, 3)
INFO net.py:  91: res4_5_branch2b_bn_s loaded from weights file into gpu_0/res4_5_branch2b_bn_s: (256,)
INFO net.py:  91: res4_5_branch2b_bn_b loaded from weights file into gpu_0/res4_5_branch2b_bn_b: (256,)
INFO net.py:  91: res4_5_branch2c_w [+ momentum] loaded from weights file into gpu_0/res4_5_branch2c_w: (1024, 256, 1, 1)
INFO net.py:  91: res4_5_branch2c_bn_s loaded from weights file into gpu_0/res4_5_branch2c_bn_s: (1024,)
INFO net.py:  91: res4_5_branch2c_bn_b loaded from weights file into gpu_0/res4_5_branch2c_bn_b: (1024,)
INFO net.py:  91: res5_0_branch2a_w [+ momentum] loaded from weights file into gpu_0/res5_0_branch2a_w: (512, 1024, 1, 1)
INFO net.py:  91: res5_0_branch2a_bn_s loaded from weights file into gpu_0/res5_0_branch2a_bn_s: (512,)
INFO net.py:  91: res5_0_branch2a_bn_b loaded from weights file into gpu_0/res5_0_branch2a_bn_b: (512,)
INFO net.py:  91: res5_0_branch2b_w [+ momentum] loaded from weights file into gpu_0/res5_0_branch2b_w: (512, 512, 3, 3)
INFO net.py:  91: res5_0_branch2b_bn_s loaded from weights file into gpu_0/res5_0_branch2b_bn_s: (512,)
INFO net.py:  91: res5_0_branch2b_bn_b loaded from weights file into gpu_0/res5_0_branch2b_bn_b: (512,)
INFO net.py:  91: res5_0_branch2c_w [+ momentum] loaded from weights file into gpu_0/res5_0_branch2c_w: (2048, 512, 1, 1)
INFO net.py:  91: res5_0_branch2c_bn_s loaded from weights file into gpu_0/res5_0_branch2c_bn_s: (2048,)
INFO net.py:  91: res5_0_branch2c_bn_b loaded from weights file into gpu_0/res5_0_branch2c_bn_b: (2048,)
INFO net.py:  91: res5_0_branch1_w [+ momentum] loaded from weights file into gpu_0/res5_0_branch1_w: (2048, 1024, 1, 1)
INFO net.py:  91: res5_0_branch1_bn_s loaded from weights file into gpu_0/res5_0_branch1_bn_s: (2048,)
INFO net.py:  91: res5_0_branch1_bn_b loaded from weights file into gpu_0/res5_0_branch1_bn_b: (2048,)
INFO net.py:  91: res5_1_branch2a_w [+ momentum] loaded from weights file into gpu_0/res5_1_branch2a_w: (512, 2048, 1, 1)
INFO net.py:  91: res5_1_branch2a_bn_s loaded from weights file into gpu_0/res5_1_branch2a_bn_s: (512,)
INFO net.py:  91: res5_1_branch2a_bn_b loaded from weights file into gpu_0/res5_1_branch2a_bn_b: (512,)
INFO net.py:  91: res5_1_branch2b_w [+ momentum] loaded from weights file into gpu_0/res5_1_branch2b_w: (512, 512, 3, 3)
INFO net.py:  91: res5_1_branch2b_bn_s loaded from weights file into gpu_0/res5_1_branch2b_bn_s: (512,)
INFO net.py:  91: res5_1_branch2b_bn_b loaded from weights file into gpu_0/res5_1_branch2b_bn_b: (512,)
INFO net.py:  91: res5_1_branch2c_w [+ momentum] loaded from weights file into gpu_0/res5_1_branch2c_w: (2048, 512, 1, 1)
INFO net.py:  91: res5_1_branch2c_bn_s loaded from weights file into gpu_0/res5_1_branch2c_bn_s: (2048,)
INFO net.py:  91: res5_1_branch2c_bn_b loaded from weights file into gpu_0/res5_1_branch2c_bn_b: (2048,)
INFO net.py:  91: res5_2_branch2a_w [+ momentum] loaded from weights file into gpu_0/res5_2_branch2a_w: (512, 2048, 1, 1)
INFO net.py:  91: res5_2_branch2a_bn_s loaded from weights file into gpu_0/res5_2_branch2a_bn_s: (512,)
INFO net.py:  91: res5_2_branch2a_bn_b loaded from weights file into gpu_0/res5_2_branch2a_bn_b: (512,)
INFO net.py:  91: res5_2_branch2b_w [+ momentum] loaded from weights file into gpu_0/res5_2_branch2b_w: (512, 512, 3, 3)
INFO net.py:  91: res5_2_branch2b_bn_s loaded from weights file into gpu_0/res5_2_branch2b_bn_s: (512,)
INFO net.py:  91: res5_2_branch2b_bn_b loaded from weights file into gpu_0/res5_2_branch2b_bn_b: (512,)
INFO net.py:  91: res5_2_branch2c_w [+ momentum] loaded from weights file into gpu_0/res5_2_branch2c_w: (2048, 512, 1, 1)
INFO net.py:  91: res5_2_branch2c_bn_s loaded from weights file into gpu_0/res5_2_branch2c_bn_s: (2048,)
INFO net.py:  91: res5_2_branch2c_bn_b loaded from weights file into gpu_0/res5_2_branch2c_bn_b: (2048,)
INFO net.py:  91: fpn_inner_res5_2_sum_w [+ momentum] loaded from weights file into gpu_0/fpn_inner_res5_2_sum_w: (256, 2048, 1, 1)
INFO net.py:  91: fpn_inner_res5_2_sum_b [+ momentum] loaded from weights file into gpu_0/fpn_inner_res5_2_sum_b: (256,)
INFO net.py:  91: fpn_inner_res4_5_sum_lateral_w [+ momentum] loaded from weights file into gpu_0/fpn_inner_res4_5_sum_lateral_w: (256, 1024, 1, 1)
INFO net.py:  91: fpn_inner_res4_5_sum_lateral_b [+ momentum] loaded from weights file into gpu_0/fpn_inner_res4_5_sum_lateral_b: (256,)
INFO net.py:  91: fpn_inner_res3_3_sum_lateral_w [+ momentum] loaded from weights file into gpu_0/fpn_inner_res3_3_sum_lateral_w: (256, 512, 1, 1)
INFO net.py:  91: fpn_inner_res3_3_sum_lateral_b [+ momentum] loaded from weights file into gpu_0/fpn_inner_res3_3_sum_lateral_b: (256,)
INFO net.py:  91: fpn_res5_2_sum_w [+ momentum] loaded from weights file into gpu_0/fpn_res5_2_sum_w: (256, 256, 3, 3)
INFO net.py:  91: fpn_res5_2_sum_b [+ momentum] loaded from weights file into gpu_0/fpn_res5_2_sum_b: (256,)
INFO net.py:  91: fpn_res4_5_sum_w [+ momentum] loaded from weights file into gpu_0/fpn_res4_5_sum_w: (256, 256, 3, 3)
INFO net.py:  91: fpn_res4_5_sum_b [+ momentum] loaded from weights file into gpu_0/fpn_res4_5_sum_b: (256,)
INFO net.py:  91: fpn_res3_3_sum_w [+ momentum] loaded from weights file into gpu_0/fpn_res3_3_sum_w: (256, 256, 3, 3)
INFO net.py:  91: fpn_res3_3_sum_b [+ momentum] loaded from weights file into gpu_0/fpn_res3_3_sum_b: (256,)
INFO net.py:  91: fpn_6_w [+ momentum] loaded from weights file into gpu_0/fpn_6_w: (256, 2048, 3, 3)
INFO net.py:  91: fpn_6_b [+ momentum] loaded from weights file into gpu_0/fpn_6_b: (256,)
INFO net.py:  91: fpn_7_w [+ momentum] loaded from weights file into gpu_0/fpn_7_w: (256, 256, 3, 3)
INFO net.py:  91: fpn_7_b [+ momentum] loaded from weights file into gpu_0/fpn_7_b: (256,)
INFO net.py:  91: retnet_cls_conv_n0_fpn3_w [+ momentum] loaded from weights file into gpu_0/retnet_cls_conv_n0_fpn3_w: (256, 256, 3, 3)
INFO net.py:  91: retnet_cls_conv_n0_fpn3_b [+ momentum] loaded from weights file into gpu_0/retnet_cls_conv_n0_fpn3_b: (256,)
INFO net.py:  91: retnet_cls_conv_n1_fpn3_w [+ momentum] loaded from weights file into gpu_0/retnet_cls_conv_n1_fpn3_w: (256, 256, 3, 3)
INFO net.py:  91: retnet_cls_conv_n1_fpn3_b [+ momentum] loaded from weights file into gpu_0/retnet_cls_conv_n1_fpn3_b: (256,)
INFO net.py:  91: retnet_cls_conv_n2_fpn3_w [+ momentum] loaded from weights file into gpu_0/retnet_cls_conv_n2_fpn3_w: (256, 256, 3, 3)
INFO net.py:  91: retnet_cls_conv_n2_fpn3_b [+ momentum] loaded from weights file into gpu_0/retnet_cls_conv_n2_fpn3_b: (256,)
INFO net.py:  91: retnet_cls_conv_n3_fpn3_w [+ momentum] loaded from weights file into gpu_0/retnet_cls_conv_n3_fpn3_w: (256, 256, 3, 3)
INFO net.py:  91: retnet_cls_conv_n3_fpn3_b [+ momentum] loaded from weights file into gpu_0/retnet_cls_conv_n3_fpn3_b: (256,)
INFO net.py:  91: retnet_cls_pred_fpn3_w [+ momentum] loaded from weights file into gpu_0/retnet_cls_pred_fpn3_w: (720, 256, 3, 3)
INFO net.py:  91: retnet_cls_pred_fpn3_b [+ momentum] loaded from weights file into gpu_0/retnet_cls_pred_fpn3_b: (720,)
INFO net.py:  91: retnet_bbox_conv_n0_fpn3_w [+ momentum] loaded from weights file into gpu_0/retnet_bbox_conv_n0_fpn3_w: (256, 256, 3, 3)
INFO net.py:  91: retnet_bbox_conv_n0_fpn3_b [+ momentum] loaded from weights file into gpu_0/retnet_bbox_conv_n0_fpn3_b: (256,)
INFO net.py:  91: retnet_bbox_conv_n1_fpn3_w [+ momentum] loaded from weights file into gpu_0/retnet_bbox_conv_n1_fpn3_w: (256, 256, 3, 3)
INFO net.py:  91: retnet_bbox_conv_n1_fpn3_b [+ momentum] loaded from weights file into gpu_0/retnet_bbox_conv_n1_fpn3_b: (256,)
INFO net.py:  91: retnet_bbox_conv_n2_fpn3_w [+ momentum] loaded from weights file into gpu_0/retnet_bbox_conv_n2_fpn3_w: (256, 256, 3, 3)
INFO net.py:  91: retnet_bbox_conv_n2_fpn3_b [+ momentum] loaded from weights file into gpu_0/retnet_bbox_conv_n2_fpn3_b: (256,)
INFO net.py:  91: retnet_bbox_conv_n3_fpn3_w [+ momentum] loaded from weights file into gpu_0/retnet_bbox_conv_n3_fpn3_w: (256, 256, 3, 3)
INFO net.py:  91: retnet_bbox_conv_n3_fpn3_b [+ momentum] loaded from weights file into gpu_0/retnet_bbox_conv_n3_fpn3_b: (256,)
INFO net.py:  91: retnet_bbox_pred_fpn3_w [+ momentum] loaded from weights file into gpu_0/retnet_bbox_pred_fpn3_w: (36, 256, 3, 3)
INFO net.py:  91: retnet_bbox_pred_fpn3_b [+ momentum] loaded from weights file into gpu_0/retnet_bbox_pred_fpn3_b: (36,)
INFO net.py: 125: res3_1_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res2_2_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res3_3_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res4_4_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res4_5_branch2b_b preserved in workspace (unused)
INFO net.py: 125: conv1_b preserved in workspace (unused)
INFO net.py: 125: fc1000_b preserved in workspace (unused)
INFO net.py: 125: fc1000_w preserved in workspace (unused)
INFO net.py: 125: res4_0_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res4_1_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res5_0_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res4_5_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res3_2_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res4_3_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res2_0_branch1_b preserved in workspace (unused)
INFO net.py: 125: res2_1_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res4_0_branch1_b preserved in workspace (unused)
INFO net.py: 125: res2_2_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res5_1_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res2_1_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res3_2_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res3_0_branch1_b preserved in workspace (unused)
INFO net.py: 125: res4_2_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res2_0_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res5_2_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res4_1_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res4_0_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res4_0_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res4_5_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res4_2_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res2_1_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res3_1_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res3_0_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res2_2_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res3_1_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res5_1_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res5_1_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res4_4_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res5_2_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res3_3_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res3_2_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res3_3_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res4_1_branch2b_b preserved in workspace (unused)
INFO net.py: 125: res4_2_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res2_0_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res4_4_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res4_3_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res5_0_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res5_2_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res5_0_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res3_0_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res5_0_branch1_b preserved in workspace (unused)
INFO net.py: 125: res3_0_branch2c_b preserved in workspace (unused)
INFO net.py: 125: res2_0_branch2a_b preserved in workspace (unused)
INFO net.py: 125: res4_3_branch2c_b preserved in workspace (unused)
I0124 15:09:25.705162 23889 net_dag_utils.cc:118] Operator graph pruning prior to chain compute took: 7.5954e-05 secs
I0124 15:09:25.705276 23889 net_dag.cc:61] Number of parallel execution chains 41 Number of operators = 281
Traceback (most recent call last):
  File "tools/infer_simple.py", line 147, in <module>
    main(args)
  File "tools/infer_simple.py", line 99, in main
    model = infer_engine.initialize_model_from_cfg()
  File "/home/ecli/detectron/lib/core/test_engine.py", line 226, in initialize_model_from_cfg
    workspace.CreateNet(model.conv_body_net)
  File "/usr/local/caffe2/python/model_helper.py", line 468, in __getattr__
    ','.join(workspace.C.nearby_opnames(op_type)) + ']'
AttributeError: Method conv_body_net is not a registered operator. Did you mean: []

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.