Developer Guide

Contents

Layers

Types of Layers Implemented

Intel DAAL
provides the following types of layers:
In the descriptions of specific layers, the preceding layer for the layer
i
is the layer:
  • i
    − 1 for forward layers.
  • i
    +1 for backward layers.

Assumptions

When using
Intel DAAL
neural networks, be aware of the following assumptions:
  • In
    Intel DAAL
    , numbering of data samples is scalar.
  • For neural network layers, the first dimension of the input tensor represents the data samples.
    While the actual layout of the data can be different, the access methods of the tensor return the data in the assumed layout. Therefore, for a tensor containing the input to the neural network, it is your responsibility to change logical indexing of tensor dimensions so that the first dimension represents the sample data. To do this, use the
    shuffleDimensions()
    method of the
    Tensor
    class.
  • Several neural network layers listed below support in-place computation, which means the result rewrites the input memory under the following conditions:
    • Both the input and the result are represented by a homogenous tensor of floating-point type identical to the
      algorithmFPType
      type used by the layer for intermediate computations.
    • The input of the layer is unique, that is, it is not shared between multiple layers in the neural network topology (the inputs of the layers that have the split as preceding layer are shared).
    • Required for the layers marked with (*) sign.
      The layers are used on prediction stage only, except the layers in the forward computation step of the training stage.
    The following layers support in-place computation:
    • Absolute Value (Abs) Forward Layer (*)
    • Absolute Value (Abs) Backward Layer
    • Logistic Forward Layer (*)
    • Logistic Backward Layer
    • Rectifier Linear Unit (ReLU) Forward Layer (*)
    • Rectifier Linear Unit (ReLU) Backward Layer
    • Hyperbolic Tangent Forward Layer (*)
    • Hyperbolic Tangent Backward Layer
    • Split Forward Layer

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804