Python* API Reference for Intel® Data Analytics Acceleration Library 2020 Update 1

eltwise_sum_layer_dense_batch.py

1 # file: eltwise_sum_layer_dense_batch.py
2 #===============================================================================
3 # Copyright 2014-2020 Intel Corporation
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #===============================================================================
17 
18 #
19 # ! Content:
20 # ! Python example of forward and backward element-wise sum layer usage
21 # !
22 # !*****************************************************************************
23 
24 #
25 
26 
27 #
28 
29 import os
30 import sys
31 
32 from daal.algorithms.neural_networks import layers
33 
34 utils_folder = os.path.realpath(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
35 if utils_folder not in sys.path:
36  sys.path.insert(0, utils_folder)
37 from utils import printNumericTable, printTensor, readTensorFromCSV
38 
39 # Input data set parameters
40 datasetName = os.path.join("..", "data", "batch", "layer.csv")
41 nInputs = 3
42 
43 if __name__ == "__main__":
44 
45  # Retrieve the input data
46  tensorDataCollection = layers.LayerData()
47  for i in range(nInputs):
48  tensorDataCollection[i] = readTensorFromCSV(datasetName)
49 
50  # Create an algorithm to compute forward element-wise sum layer results using default method
51  eltwiseSumLayerForward = layers.eltwise_sum.forward.Batch()
52 
53  # Set input objects for the forward element-wise sum layer
54  eltwiseSumLayerForward.input.setInputLayerData(layers.forward.inputLayerData, tensorDataCollection)
55 
56  # Compute forward element-wise sum layer results
57  forwardResult = eltwiseSumLayerForward.compute()
58 
59  printTensor(forwardResult.getResult(layers.forward.value),
60  "Forward element-wise sum layer result (first 5 rows):", 5)
61  printNumericTable(forwardResult.getLayerDataNumericTable(layers.eltwise_sum.auxNumberOfCoefficients),
62  "Forward element-wise sum layer number of inputs (number of coefficients)", 1)
63 
64  # Create an algorithm to compute backward element-wise sum layer results using default method
65  eltwiseSumLayerBackward = layers.eltwise_sum.backward.Batch()
66 
67  # Set inputs for the backward element-wise sum layer
68  eltwiseSumLayerBackward.input.setInput(layers.backward.inputGradient, readTensorFromCSV(datasetName))
69  eltwiseSumLayerBackward.input.setInputLayerData(layers.backward.inputFromForward, forwardResult.getResultLayerData(layers.forward.resultForBackward))
70 
71  # Compute backward element-wise sum layer results
72  backwardResult = eltwiseSumLayerBackward.compute()
73 
74  for i in range(tensorDataCollection.size()):
75  printTensor(backwardResult.getResultLayerData(layers.backward.resultLayerData, i),
76  "Backward element-wise sum layer backward result (first 5 rows):", 5)

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