From 5193795a3b187ce2f2747e2fff5fb70925faaea1 Mon Sep 17 00:00:00 2001 From: Daniel Angelov Date: Thu, 31 Jan 2019 19:09:17 +0000 Subject: [PATCH 1/2] Perform batch size check before converting scales If batch size 2 is used, it fails with ``` scale = np.asscalar(cuda.to_cpu(scale)) File "...numpy/lib/type_check.py", line 482, in asscalar return a.item() ValueError: can only convert an array of size 1 to a Python scalar ``` Proposed outcome: By reordering the checks, the RaiseValue Error would be raised before the conversion, avoiding this error. --- chainercv/links/model/faster_rcnn/faster_rcnn_train_chain.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/chainercv/links/model/faster_rcnn/faster_rcnn_train_chain.py b/chainercv/links/model/faster_rcnn/faster_rcnn_train_chain.py index 5b581f5d70..740c7a9389 100644 --- a/chainercv/links/model/faster_rcnn/faster_rcnn_train_chain.py +++ b/chainercv/links/model/faster_rcnn/faster_rcnn_train_chain.py @@ -95,11 +95,12 @@ def __call__(self, imgs, bboxes, labels, scales): labels = labels.array if isinstance(scales, chainer.Variable): scales = scales.array - scales = cuda.to_cpu(scales) + n = bboxes.shape[0] if n != 1: raise ValueError('Currently only batch size 1 is supported.') - + scales = cuda.to_cpu(scales) + _, _, H, W = imgs.shape img_size = (H, W) From 50a37713a5a6130c932aedd3b9cca4f220844d04 Mon Sep 17 00:00:00 2001 From: Daniel Angelov Date: Thu, 31 Jan 2019 20:26:06 +0000 Subject: [PATCH 2/2] whitespace --- chainercv/links/model/faster_rcnn/faster_rcnn_train_chain.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chainercv/links/model/faster_rcnn/faster_rcnn_train_chain.py b/chainercv/links/model/faster_rcnn/faster_rcnn_train_chain.py index 740c7a9389..512a58b901 100644 --- a/chainercv/links/model/faster_rcnn/faster_rcnn_train_chain.py +++ b/chainercv/links/model/faster_rcnn/faster_rcnn_train_chain.py @@ -100,7 +100,7 @@ def __call__(self, imgs, bboxes, labels, scales): if n != 1: raise ValueError('Currently only batch size 1 is supported.') scales = cuda.to_cpu(scales) - + _, _, H, W = imgs.shape img_size = (H, W)