COMPMID-556: Allocate trainable data tensor after configuration

Change-Id: I8a5fd2418dd104a06a0972abf088f64d7c2796d3
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/112779
Tested-by: BSG Visual Compute Jenkins server to access repositories on http://mpd-gerrit.cambridge.arm.com <bsgcomp@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
diff --git a/src/graph/nodes/BatchNormalizationLayer.cpp b/src/graph/nodes/BatchNormalizationLayer.cpp
index 927ce5e..7851aa5 100644
--- a/src/graph/nodes/BatchNormalizationLayer.cpp
+++ b/src/graph/nodes/BatchNormalizationLayer.cpp
@@ -78,6 +78,9 @@
     node_ctx.add_output(out);
     node_ctx.add_parameter<float>("epsilon", _epsilon);
 
+    // Configure operation
+    auto func = OperationRegistry::get().find_operation(OperationType::BatchNormalizationLayer, _target_hint)->configure(node_ctx);
+
     // Fill tensors
     if(!mean_is_loaded)
     {
@@ -97,5 +100,5 @@
     }
 
     // Get function
-    return OperationRegistry::get().find_operation(OperationType::BatchNormalizationLayer, _target_hint)->configure(node_ctx);
+    return func;
 }
\ No newline at end of file
diff --git a/src/graph/nodes/DepthwiseConvolutionLayer.cpp b/src/graph/nodes/DepthwiseConvolutionLayer.cpp
index ceac2a2..b459853 100644
--- a/src/graph/nodes/DepthwiseConvolutionLayer.cpp
+++ b/src/graph/nodes/DepthwiseConvolutionLayer.cpp
@@ -72,6 +72,9 @@
     node_ctx.add_parameter<PadStrideInfo>("ConvolutionInfo", _conv_info);
     node_ctx.add_parameter<bool>("Optimized3x3", _opt3x3);
 
+    // Configure operation
+    auto func = OperationRegistry::get().find_operation(OperationType::DepthwiseConvolutionLayer, _target_hint)->configure(node_ctx);
+
     // Fill tensors
     if(!weights_is_loaded)
     {
@@ -83,5 +86,5 @@
     }
 
     // Get function
-    return OperationRegistry::get().find_operation(OperationType::DepthwiseConvolutionLayer, _target_hint)->configure(node_ctx);
+    return func;
 }
diff --git a/src/graph/nodes/FullyConnectedLayer.cpp b/src/graph/nodes/FullyConnectedLayer.cpp
index 41f679b..219e0f9 100644
--- a/src/graph/nodes/FullyConnectedLayer.cpp
+++ b/src/graph/nodes/FullyConnectedLayer.cpp
@@ -88,6 +88,9 @@
     node_ctx.add_input(_biases.set_target(_target_hint));
     node_ctx.add_output(out);
 
+    // Configure operation
+    auto func = OperationRegistry::get().find_operation(OperationType::FullyConnectedLayer, _target_hint)->configure(node_ctx);
+
     // Fill biases
     if(!weights_are_loaded)
     {
@@ -99,5 +102,5 @@
     }
 
     // Get function
-    return OperationRegistry::get().find_operation(OperationType::FullyConnectedLayer, _target_hint)->configure(node_ctx);
+    return func;
 }