42 #ifndef __NEURAL_NETWORKS_PREDICTION_TOPOLOGY_H__ 43 #define __NEURAL_NETWORKS_PREDICTION_TOPOLOGY_H__ 45 #include "algorithms/neural_networks/layers/layer_forward_descriptor.h" 46 #include "algorithms/neural_networks/neural_networks_training_topology.h" 52 namespace neural_networks
68 class Topology:
public Base
71 typedef services::Collection<layers::forward::LayerDescriptor> Descriptors;
81 Topology(
const training::Topology &t) : _config(t.size())
83 for(
size_t i = 0; i < _config.size(); ++i)
85 const layers::LayerDescriptor& desc = t[i];
86 layers::forward::LayerIfacePtr predictionLayer = desc.layer()->forwardLayer->getLayerForPrediction();
87 _config[i] = layers::forward::LayerDescriptor(i, predictionLayer, desc.nextLayers());
88 predictionLayer->getLayerParameter()->predictionStage =
true;
96 Topology(
const Topology &t) : _config(t.size())
98 for(
size_t i = 0; i < t.size(); i++)
100 _config[i] = layers::forward::LayerDescriptor(i, t[i].layer(), t[i].nextLayers());
108 size_t size()
const {
return _config.size(); }
115 size_t push_back(
const layers::forward::LayerIfacePtr &layer)
117 size_t id = _config.size();
118 _config.push_back(layers::forward::LayerDescriptor(
id, layer));
127 size_t add(
const layers::forward::LayerIfacePtr &layer)
129 return push_back(layer);
138 size_t add(
const Topology &topologyBlock,
size_t &startIndex)
140 size_t size = _config.size();
144 for(
size_t i = 0; i < topologyBlock.size(); i++)
146 id = push_back(topologyBlock[i].layer());
147 const layers::NextLayers& nextLayers = topologyBlock[i].nextLayers();
148 for(
size_t j = 0; j < nextLayers.size(); j++)
150 addNext(i + size, nextLayers[j] + size);
161 services::Status clear()
164 return services::Status();
172 layers::forward::LayerDescriptor& operator [] (
size_t index) {
return _config[index]; }
179 const layers::forward::LayerDescriptor& operator [] (
size_t index)
const {
return _config[index]; }
186 layers::forward::LayerDescriptor&
get(
size_t index) {
return _config[index]; }
193 const layers::forward::LayerDescriptor&
get(
size_t index)
const {
return _config[index]; }
204 services::Status addNext(
size_t index,
size_t next)
206 _config[index].addNext(next);
207 return services::Status();
214 typedef services::SharedPtr<Topology> TopologyPtr;
218 using interface1::Topology;
219 using interface1::TopologyPtr;
daal::algorithms::neural_networks::layers::interface1::LayerDescriptor
Class defining descriptor for layer on both forward and backward stages and its parameters.
Definition: layer_descriptor.h:71
daal::algorithms::neural_networks::prediction::interface1::Topology::Topology
Topology(const training::Topology &t)
Definition: neural_networks_prediction_topology.h:81
daal::algorithms::neural_networks::layers::interface1::LayerDescriptor::layer
const layers::LayerIfacePtr & layer() const
Definition: layer_descriptor.h:119
daal::algorithms::neural_networks::training::interface1::Topology
Class defining a neural network topology - a set of layers and connection between them - on the train...
Definition: neural_networks_training_topology.h:66
daal::services::interface1::Status
Class that holds the results of API calls. In case of API routine failure it contains the list of err...
Definition: error_handling.h:491
daal
Definition: algorithm_base_common.h:57
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:68
daal::algorithms::neural_networks::prediction::interface1::Topology::clear
services::Status clear()
Definition: neural_networks_prediction_topology.h:161
daal::algorithms::neural_networks::prediction::prediction
Definition: neural_networks_prediction_result.h:79
daal::algorithms::neural_networks::layers::interface1::NextLayers
Contains list of layer indices of layers following the current layer.
Definition: layer_types.h:140
daal::algorithms::neural_networks::layers::interface1::LayerDescriptor::nextLayers
const NextLayers & nextLayers() const
Definition: layer_descriptor.h:125
daal::algorithms::neural_networks::prediction::interface1::Topology::Topology
Topology(const Topology &t)
Definition: neural_networks_prediction_topology.h:96
daal::services::interface1::Collection::push_back
Collection & push_back(const T &x)
Definition: collection.h:197
daal::algorithms::neural_networks::prediction::interface1::Topology::push_back
size_t push_back(const layers::forward::LayerIfacePtr &layer)
Definition: neural_networks_prediction_topology.h:115
daal::services::interface1::SharedPtr
Shared pointer that retains shared ownership of an object through a pointer. Several SharedPtr object...
Definition: daal_shared_ptr.h:187
daal::algorithms::neural_networks::prediction::interface1::Topology::size
size_t size() const
Definition: neural_networks_prediction_topology.h:108
daal::algorithms::neural_networks::prediction::interface1::Topology::operator[]
layers::forward::LayerDescriptor & operator[](size_t index)
Definition: neural_networks_prediction_topology.h:172
daal::services::interface1::Collection::clear
void clear()
Definition: collection.h:253
daal::algorithms::neural_networks::prediction::interface1::Topology::Topology
Topology()
Definition: neural_networks_prediction_topology.h:75
daal::algorithms::neural_networks::prediction::interface1::Topology::addNext
services::Status addNext(size_t index, size_t next)
Definition: neural_networks_prediction_topology.h:204
daal::services::interface1::Collection::size
size_t size() const
Definition: collection.h:144
daal::algorithms::neural_networks::layers::forward::interface1::LayerDescriptor
Class defining descriptor for layer on forward stage.
Definition: layer_forward_descriptor.h:83
daal::algorithms::neural_networks::prediction::interface1::Topology::add
size_t add(const Topology &topologyBlock, size_t &startIndex)
Definition: neural_networks_prediction_topology.h:138
daal::algorithms::neural_networks::prediction::interface1::Topology::add
size_t add(const layers::forward::LayerIfacePtr &layer)
Definition: neural_networks_prediction_topology.h:127
daal::Base
Base class for Intel(R) Data Analytics Acceleration Library objects
Definition: base.h:65
daal::algorithms::neural_networks::layers::interface1::NextLayers::size
size_t size() const
Definition: layer_types.h:250
daal::services::interface1::Collection
Class that implements functionality of the Collection container.
Definition: collection.h:69