C++ API Reference for Intel® Data Analytics Acceleration Library 2020 Update 1

neural_networks_prediction_topology.h
1 /* file: neural_networks_prediction_topology.h */
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 #ifndef __NEURAL_NETWORKS_PREDICTION_TOPOLOGY_H__
19 #define __NEURAL_NETWORKS_PREDICTION_TOPOLOGY_H__
20 
21 #include "algorithms/neural_networks/layers/layer_forward_descriptor.h"
22 #include "algorithms/neural_networks/neural_networks_training_topology.h"
23 
24 namespace daal
25 {
26 namespace algorithms
27 {
28 namespace neural_networks
29 {
30 namespace prediction
31 {
32 namespace interface1
33 {
34 
45 class Topology: public Base
46 {
47 protected:
48  typedef services::Collection<layers::forward::LayerDescriptor> Descriptors;
49 
50 public:
51  /*
52  * Default constructor
53  * \DAAL_DEPRECATED
54  */
55  DAAL_DEPRECATED Topology() {}
56 
62  DAAL_DEPRECATED Topology(const training::Topology &t) : _config(t.size())
63  {
64  for(size_t i = 0; i < _config.size(); ++i)
65  {
66  const layers::LayerDescriptor& desc = t[i];
67  layers::forward::LayerIfacePtr predictionLayer = desc.layer()->forwardLayer->getLayerForPrediction();
68  _config[i] = layers::forward::LayerDescriptor(i, predictionLayer, desc.nextLayers());
69  predictionLayer->getLayerParameter()->predictionStage = true;
70  }
71  }
72 
78  DAAL_DEPRECATED Topology(const Topology &t) : _config(t.size())
79  {
80  for(size_t i = 0; i < t.size(); i++)
81  {
82  _config[i] = layers::forward::LayerDescriptor(i, t[i].layer(), t[i].nextLayers());
83  }
84  }
85 
91  size_t size() const { return _config.size(); }
92 
99  size_t push_back(const layers::forward::LayerIfacePtr &layer)
100  {
101  size_t id = _config.size();
102  _config.push_back(layers::forward::LayerDescriptor(id, layer));
103  return id;
104  }
105 
112  DAAL_DEPRECATED size_t add(const layers::forward::LayerIfacePtr &layer)
113  {
114  return push_back(layer);
115  }
116 
124  DAAL_DEPRECATED size_t add(const Topology &topologyBlock, size_t &startIndex)
125  {
126  size_t size = _config.size();
127  startIndex = size;
128 
129  size_t id = 0;
130  for(size_t i = 0; i < topologyBlock.size(); i++)
131  {
132  id = push_back(topologyBlock[i].layer());
133  const layers::NextLayers& nextLayers = topologyBlock[i].nextLayers();
134  for(size_t j = 0; j < nextLayers.size(); j++)
135  {
136  addNext(i + size, nextLayers[j] + size);
137  }
138  }
139  return id;
140  }
141 
148  DAAL_DEPRECATED services::Status clear()
149  {
150  _config.clear();
151  return services::Status();
152  }
153 
160  DAAL_DEPRECATED layers::forward::LayerDescriptor& operator [] (size_t index) { return _config[index]; }
161 
168  const layers::forward::LayerDescriptor& operator [] (size_t index) const { return _config[index]; }
169 
176  DAAL_DEPRECATED layers::forward::LayerDescriptor& get(size_t index) { return _config[index]; }
177 
184  DAAL_DEPRECATED const layers::forward::LayerDescriptor& get(size_t index) const { return _config[index]; }
185 
186 
196  services::Status addNext(size_t index, size_t next)
197  {
198  _config[index].addNext(next);
199  return services::Status();
200  }
201 
202 protected:
203  Descriptors _config;
204 };
205 
206 typedef services::SharedPtr<Topology> TopologyPtr;
208 }
209 
210 using interface1::Topology;
211 using interface1::TopologyPtr;
212 }
213 }
214 }
215 }
216 
217 #endif
daal::algorithms::neural_networks::prediction::interface1::Topology::add
DAAL_DEPRECATED size_t add(const Topology &topologyBlock, size_t &startIndex)
Definition: neural_networks_prediction_topology.h:124
daal::algorithms::neural_networks::prediction::interface1::Topology::Topology
DAAL_DEPRECATED Topology(const Topology &t)
Definition: neural_networks_prediction_topology.h:78
daal::algorithms::neural_networks::prediction::interface1::Topology
Class defining a neural network topology - a set of layers and connection between them - on the predi...
Definition: neural_networks_prediction_topology.h:45
daal::algorithms::neural_networks::prediction::prediction
Definition: neural_networks_prediction_result.h:55
daal::Base
Base class for Intel(R) Data Analytics Acceleration Library objects
Definition: base.h:41
daal::algorithms::neural_networks::prediction::interface1::Topology::size
size_t size() const
Definition: neural_networks_prediction_topology.h:91
daal::algorithms::neural_networks::prediction::interface1::Topology::Topology
DAAL_DEPRECATED Topology(const training::Topology &t)
Definition: neural_networks_prediction_topology.h:62
daal::algorithms::neural_networks::prediction::interface1::Topology::addNext
services::Status addNext(size_t index, size_t next)
Definition: neural_networks_prediction_topology.h:196
daal::algorithms::neural_networks::prediction::interface1::Topology::push_back
size_t push_back(const layers::forward::LayerIfacePtr &layer)
Definition: neural_networks_prediction_topology.h:99
daal::algorithms::neural_networks::prediction::interface1::Topology::clear
DAAL_DEPRECATED services::Status clear()
Definition: neural_networks_prediction_topology.h:148
daal::algorithms::neural_networks::prediction::interface1::Topology::add
DAAL_DEPRECATED size_t add(const layers::forward::LayerIfacePtr &layer)
Definition: neural_networks_prediction_topology.h:112
daal::algorithms::neural_networks::prediction::interface1::Topology::operator[]
DAAL_DEPRECATED layers::forward::LayerDescriptor & operator[](size_t index)
Definition: neural_networks_prediction_topology.h:160

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