Python* API Reference for Intel® Data Analytics Acceleration Library 2019

eltwise_sum_layer_dense_batch.py

1 # file: eltwise_sum_layer_dense_batch.py
2 #===============================================================================
3 # Copyright 2014-2018 Intel Corporation.
4 #
5 # This software and the related documents are Intel copyrighted materials, and
6 # your use of them is governed by the express license under which they were
7 # provided to you (License). Unless the License provides otherwise, you may not
8 # use, modify, copy, publish, distribute, disclose or transmit this software or
9 # the related documents without Intel's prior written permission.
10 #
11 # This software and the related documents are provided as is, with no express
12 # or implied warranties, other than those that are expressly stated in the
13 # License.
14 #===============================================================================
15 
16 #
17 # ! Content:
18 # ! Python example of forward and backward element-wise sum layer usage
19 # !
20 # !*****************************************************************************
21 
22 #
23 ## <a name="DAAL-EXAMPLE-PY-ELTWISE_SUM_LAYER_BATCH"></a>
24 ## \example eltwise_sum_layer_dense_batch.py
25 #
26 
27 import os
28 import sys
29 
30 from daal.algorithms.neural_networks import layers
31 
32 utils_folder = os.path.realpath(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
33 if utils_folder not in sys.path:
34  sys.path.insert(0, utils_folder)
35 from utils import printNumericTable, printTensor, readTensorFromCSV
36 
37 # Input data set parameters
38 datasetName = os.path.join("..", "data", "batch", "layer.csv")
39 nInputs = 3
40 
41 if __name__ == "__main__":
42 
43  # Retrieve the input data
44  tensorDataCollection = layers.LayerData()
45  for i in range(nInputs):
46  tensorDataCollection[i] = readTensorFromCSV(datasetName)
47 
48  # Create an algorithm to compute forward element-wise sum layer results using default method
49  eltwiseSumLayerForward = layers.eltwise_sum.forward.Batch()
50 
51  # Set input objects for the forward element-wise sum layer
52  eltwiseSumLayerForward.input.setInputLayerData(layers.forward.inputLayerData, tensorDataCollection)
53 
54  # Compute forward element-wise sum layer results
55  forwardResult = eltwiseSumLayerForward.compute()
56 
57  printTensor(forwardResult.getResult(layers.forward.value),
58  "Forward element-wise sum layer result (first 5 rows):", 5)
59  printNumericTable(forwardResult.getLayerDataNumericTable(layers.eltwise_sum.auxNumberOfCoefficients),
60  "Forward element-wise sum layer number of inputs (number of coefficients)", 1)
61 
62  # Create an algorithm to compute backward element-wise sum layer results using default method
63  eltwiseSumLayerBackward = layers.eltwise_sum.backward.Batch()
64 
65  # Set inputs for the backward element-wise sum layer
66  eltwiseSumLayerBackward.input.setInput(layers.backward.inputGradient, readTensorFromCSV(datasetName))
67  eltwiseSumLayerBackward.input.setInputLayerData(layers.backward.inputFromForward, forwardResult.getResultLayerData(layers.forward.resultForBackward))
68 
69  # Compute backward element-wise sum layer results
70  backwardResult = eltwiseSumLayerBackward.compute()
71 
72  for i in range(tensorDataCollection.size()):
73  printTensor(backwardResult.getResultLayerData(layers.backward.resultLayerData, i),
74  "Backward element-wise sum layer backward result (first 5 rows):", 5)

For more complete information about compiler optimizations, see our Optimization Notice.