[CI] Solve occasional CI issue when pad value is all 0 (#3801)
authorZhao Wu <wuzhaozju@gmail.com>
Mon, 19 Aug 2019 21:50:49 +0000 (05:50 +0800)
committerTianqi Chen <tqchen@users.noreply.github.com>
Mon, 19 Aug 2019 21:50:49 +0000 (05:50 +0800)
python/tvm/relay/frontend/coreml.py
tests/python/frontend/coreml/model_zoo/__init__.py

index ed7e45b..ba5438e 100644 (file)
@@ -74,10 +74,11 @@ def _ConvolutionLayerParams(op, inexpr, etab):
             pad_l = valid.paddingAmounts.borderAmounts[1].startEdgeSize
             pad_b = valid.paddingAmounts.borderAmounts[0].endEdgeSize
             pad_r = valid.paddingAmounts.borderAmounts[1].endEdgeSize
-            inexpr = _op.nn.pad(data=inexpr, pad_width=((0, 0),
-                                                        (0, 0),
-                                                        (pad_t, pad_b),
-                                                        (pad_l, pad_r)))
+            if not all(v == 0 for v in (pad_t, pad_l, pad_b, pad_r)):
+                inexpr = _op.nn.pad(data=inexpr, pad_width=((0, 0),
+                                                            (0, 0),
+                                                            (pad_t, pad_b),
+                                                            (pad_l, pad_r)))
     elif op.WhichOneof('ConvolutionPaddingType') == 'same':
         assert op.same.asymmetryMode == 0, "Only support BOTTOM_RIGHT_HEAVY mode, " \
                                            "which is used by tf/caffe and so on"
@@ -208,7 +209,8 @@ def _PoolingLayerParams(op, inexpr, etab):
                 pad_l = valid.paddingAmounts.borderAmounts[1].startEdgeSize
                 pad_b = valid.paddingAmounts.borderAmounts[0].endEdgeSize
                 pad_r = valid.paddingAmounts.borderAmounts[1].endEdgeSize
-                params['padding'] = [pad_t, pad_l, pad_b, pad_r]
+                if not all(v == 0 for v in (pad_t, pad_l, pad_b, pad_r)):
+                    params['padding'] = [pad_t, pad_l, pad_b, pad_r]
         elif op.WhichOneof('PoolingPaddingType') == 'includeLastPixel':
             # I don't know if this is correct
             valid = op.includeLastPixel
index b89075c..36a6da1 100644 (file)
@@ -20,5 +20,7 @@ def get_cat_image():
     dst = 'cat.png'
     real_dst = download_testdata(url, dst, module='data')
     img = Image.open(real_dst).resize((224, 224))
-    img = np.transpose(img, (2, 0, 1))[np.newaxis, :]
+    # CoreML's standard model image format is BGR
+    img_bgr = np.array(img)[:, :, ::-1]
+    img = np.transpose(img_bgr, (2, 0, 1))[np.newaxis, :]
     return np.asarray(img)
\ No newline at end of file