IVGCVSW-3058 Segmentation fault running Resnetv2.50 tfite int8 model
authorMatteo Martincigh <matteo.martincigh@arm.com>
Mon, 13 May 2019 08:22:33 +0000 (09:22 +0100)
committerMatteo Martincigh <matteo.martincigh@arm.com>
Mon, 13 May 2019 13:16:53 +0000 (14:16 +0100)
 * The execution crashed because the weights of a convolution were
   null during the network execution
 * Copied the weights and bias when folding a pad layer into a
   convolution

Change-Id: I3ae72143d04cac90d4f878cdf3b1a08b2f2a5c90
Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
src/armnn/optimizations/FoldPadIntoConvolution2d.hpp

index f789ffa..b2a2ba4 100644 (file)
@@ -59,6 +59,17 @@ public:
                                                                          name.c_str());
         newConv2dLayer.GetOutputHandler().SetTensorInfo(outInfo);
 
+        // Copy weights and bias to the new convolution layer
+        BOOST_ASSERT_MSG(convolution2dLayer->m_Weight != nullptr,
+                         "FoldPadIntoConvolution2d: Weights data should not be null.");
+        newConv2dLayer.m_Weight = std::move(convolution2dLayer->m_Weight);
+        if (descriptor.m_BiasEnabled)
+        {
+            BOOST_ASSERT_MSG(convolution2dLayer->m_Bias != nullptr,
+                             "FoldPadIntoConvolution2d: Bias data should not be null if bias is enabled.");
+            newConv2dLayer.m_Bias = std::move(convolution2dLayer->m_Bias);
+        }
+
         // Reconnects with original parent.
         newConv2dLayer.GetOutputSlot().MoveAllConnections(*parentOut);
         // Parent is now the new convolution2d layer.