supported networks, layers, boards, and tools -凯发k8网页登录

main content

supported networks, layers, boards, and tools

supported pretrained networks

deep learning hdl toolbox™ supports code generation for series convolutional neural networks (cnns or convnets). you can generate code for any trained cnn whose computational layers are supported for code generation. for a full list, see supported layers. you can use one of the pretrained networks listed in the table to generate code for your target intel® or xilinx® fpga boards.

networknetwork descriptiontypesingle data type (with shipping bitstreams)int8 data type (with shipping bitstreams)application area
   zcu102zc706arria10 soczcu102zc706arria10 socclassification
alexnet

alexnet convolutional neural network.

series networkno. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.classification
logonet

logo recognition network (logonet) is a matlab® developed logo identification network. for more information, see .

series networkyesyesyesyesyesyesclassification
digitsnet

digit classification network. see

series networkyesyesyesyesyesyesclassification
lane detection

lanenet convolutional neural network. for more information, see .

series networkno. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.classification
vgg-16

vgg-16 convolutional neural network. for the pretrained vgg-16 model, see .

series networkno. network exceeds pl ddr memory sizeno. network exceeds fc module memory size.yesyesno. network exceeds fc module memory size.yesclassification
vgg-19

vgg-19 convolutional neural network. for the pretrained vgg-19 model, see .

series networkno. network exceeds pl ddr memory sizeno. network exceeds fc module memory size.yesyesno. network exceeds fc module memory size.yesclassification
darknet-19

darknet-19 convolutional neural network. for the pretrained darknet-19 model, see .

series networkyesyesyesyesyesyesclassification
radar classificationconvolutional neural network that uses micro-doppler signatures to identify and classify the object. for more information, see .series networkyesyesyesyesyesyesclassification and software defined radio (sdr)
defect detection snet_defnetsnet_defnet is a custom alexnet network used to identify and classify defects. for more information, see defect detection.series networkno. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.classification
defect detection snet_blemdetnetsnet_blemdetnet is a custom convolutional neural network used to identify and classify defects. for more information, see defect detection.series networkno. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.classification
darknet-53darknet-53 convolutional neural network. for the pretrained darknet-53 model, see .directed acyclic graph (dag) network basedyesyesyesyesyesnoclassification
resnet-18resnet-18 convolutional neural network. for the pretrained resnet-18 model, see .directed acyclic graph (dag) network basedyesyesyesyesyesyesclassification
resnet-50resnet-50 convolutional neural network. for the pretrained resnet-50 model, see .directed acyclic graph (dag) network basedno. network exceeds pl ddr memory size.no. network exceeds pl ddr memory size.yesyesyesyesclassification
resnet-based yolo v2you only look once (yolo) is an object detector that decodes the predictions from a convolutional neural network and generates bounding boxes around the objects. for more information, see .directed acyclic graph (dag) network basedyesyesyesyesyesyesobject detection
mobilenetv2mobilenet-v2 convolutional neural network. for the pretrained mobilenet-v2 model, see .directed acyclic graph (dag) network basedyesyesyesyesyesyesclassification
googlenetgooglenet convolutional neural network. for the pretrained googlenet model, see .directed acyclic graph (dag) network basedno. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.no. to use the bitstream, enable the lrnblockgeneration property of the processor configuration for the bitstream and generate the bitstream again.classification
posenethuman pose estimation network.directed acyclic graph (dag) network basedyes.yesyesyesyesyessegmentation
u-netu-net convolutional neural network designed for semantic image segmentation.directed acyclic graph (dag) network basedno. pl ddr memory oversize.no. pl ddr memory oversize.no. pl ddr memory oversize.no. pl ddr memory oversize.no. pl ddr memory oversize.yessegmentation
squeezenet-based yolo v3the you-only-look-once (yolo) v3 object detector is a multi-scale object detection network that uses a feature extraction network and multiple detection heads to make predictions at multiple scales.dlnetwork objectyesyesnonononoobject detection
sequence-to-sequence classificationclassify each time step of sequence data using a long short-term memory (lstm) network. see .long short-term memory (lstm) networkyesyesnonononosequence data classification
time series forecastingforecast time series data using a long short-term memory (lstm) network. see long short-term memory (lstm) networkyesyesnonononoforecast time series data
word-by-word text generationgenerate text word-by-word by using a long short-term memory (lstm) network. see .long short-term memory (lstm) networkyesyesnonononosequence data prediction
yamnetpretrained audio classification network. see yamnet (audio toolbox) and .series networkyesyesyesyesyesyesaudio data classification
semantic segmentation using dilated convolutionssemantic segmentation using dilated convolution layer to increase coverage area without increasing the number of computational parameters. see .series networkyesyesyesyesyesyessegmentation
time series forecastingforecast time series data using a long short-term memory (lstm) network. see .gated recurrent unit (gru) layer networkyesyesnonononoforecast time series data
pruned image classification networkpruned image classification network. see series networkyesyesyesyesyesyesimage classification
very-deep super-resolution (vdsr) networkcreate high resolution images from low-resolution images by using vdsr networks. see series networkyesyesyesyesyesyesimage processing

supported layers

deep learning hdl toolbox supports the layers listed in these tables.

input layers

layer layer type hardware (hw) or software(sw)description and limitationsint8 compatible

sw

an image input layer inputs 2-d images to a network and applies data normalization. the normalization options zero-center and zscore can run on hardware if the compile method hardwarenormalization argument is enabled and the input data is of single data type. if the hardwarenormalization option is not enabled or the input data type is int8 the normalization runs in software. normalization specified using a function handle is not supported. see image input layer normalization hardware implementation. when the normalization property is set to none the activations function cannot be used for the imageinputlayer.

yes. runs as single datatype in sw.

swa feature input layer inputs feature data to a network and applies data normalization.no

swa sequence input layer inputs sequence data to a network.no

convolution and fully connected layers

layer layer type hardware (hw) or software(sw)layer output formatdescription and limitationsint8 compatible

hwconvolution (conv)

a 2-d convolutional layer applies sliding convolutional filters to the input.

when generating code for a network using this layer, these limitations apply:

  • filter size must be 1-66.

  • stride size must be 1-15 and square.

  • padding size must be in the range 0-8.

  • dilation factor supported up to [16 16] and must be square.

  • padding value is not supported.

  • when the dilation factor is a multiple of three the calculated dilated filter size must have a maximum value of the existing convolution filter size limit. in all other cases, the filter size can be as large as the maximum value of the existing convolution filter size.

yes

hwconvolution (conv)

a 2-d grouped convolutional layer separates the input channels into groups and applies sliding convolutional filters. use grouped convolutional layers for channel-wise separable (also known as depth-wise separable) convolution.

code generation is now supported for a 2-d grouped convolution layer that has the numgroups property set as 'channel-wise'.

when generating code for a network using this layer, these limitations apply:

  • filter size must be 1-15 and square. for example [1 1] or [14 14]. when the numgroups is set as 'channel-wise', filter size must be 3-14.

  • stride size must be 1-15 and square.

  • padding size must be in the range 0-8.

  • dilation factor must be [1 1].

  • when the numgroups is not set as 'channel-wise', number of groups must be 1 or 2.

  • the input feature number must be greater than a single multiple of the square root of the convthreadnumber.

  • when the numgroups is not set as 'channel-wise', the number of filters per group must be a multiple of the square root of the convthreadnumber.

yes

hwconvolution (conv)

a transposed 2-d convolution layer upsamples feature maps.

when generating code for a network using this layer, these limitations apply:

  • filter size must be 1-8 and square.

  • stride size must be 1-66 and square.

  • padding size must be in the range 0-8.

  • padding value is not supported.

yes

fullyconnectedlayer

hwfully connected (fc)

a fully connected layer multiplies the input by a weight matrix, and then adds a bias vector.

when generating code for a network using this layer, these limitations apply:

  • the layer input and output size are limited by the values specified in and .

yes

activation layers

layerlayer type hardware (hw) or software(sw)layer output formatdescription and limitationsint8 compatible

hwlayer is fused.

a relu layer performs a threshold operation to each element of the input where any value less than zero is set to zero.

a relu layer is supported only when it is preceded by any of these layers:

  • convolution

  • fully connected

  • adder

yes

hwlayer is fused.

a leaky relu layer performs a threshold operation where any input value less than zero is multiplied by a fixed scalar.

a leaky relu layer is supported only when it is preceded by any of these layers:

  • convolution

  • fully connected

  • adder

yes

hwlayer is fused.

a clipped relu layer performs a threshold operation where any input value less than zero is set to zero and any value above the clipping ceiling is set to that clipping ceiling value.

a clipped relu layer is supported only when it is preceded by any of these layers:

  • convolution

  • fully connected

  • adder

yes

hwinherit from input

a hyperbolic tangent (tanh) activation layer applies the tanh function on the layer inputs.

no

normalization, dropout, and cropping layers

layerlayer type hardware (hw) or software(sw)layer output formatdescription and limitationsint8 compatible

hwlayer is fused.

a batch normalization layer normalizes each input channel across a mini-batch.

a batch normalization layer is supported when preceded by an image input layer or convolution layer.

yes

hwconvolution (conv)

a channel-wise local response (cross-channel) normalization layer carries out channel-wise normalization.

the windowchannelsize must be in the range of 3-9 for code generation.

yes. runs as single datatype in hw.

noop on inferencenoop on inference

a dropout layer randomly sets input elements to zero within a given probability.

yes

(image processing toolbox)

hwinherit from input

a 2-d resize layer resizes 2-d input by a scale factor, to a specified height and width, or to the size of a reference input feature map.

when generating code for a network using this layer, these limitations apply:

  • the method property must be set to nearest.

  • the geometrictransformationmode property must be set to half-pixel.

  • the nearestroundingmode property must be set to round.

  • the ratio of the output size to input size must be an integer and in the range between two and 256.

no

pooling and unpooling layers

layerlayer type hardware (hw) or software(sw)layer output formatdescription and limitationsint8 compatible

hwconvolution (conv)

a max pooling layer performs downsampling by dividing the layer input into rectangular pooling regions and computing the maximum of each region.

when generating code for a network using this layer, these limitations apply:

  • pool size must be 1-66.

  • stride size must be 1-15 and square.

  • padding size must be in the range 0-6.

hasunpoolingoutputs is supported. when this parameter is enabled, these limitations apply for code generation for this layer:

  • pool size must be 2-by-2 or 3-by-3.

  • the stride size must be the same as the filter size.

  • padding size is not supported.

  • pool size and stride size must be square. for example, [2 2].

yes

no, when hasunpoolingoutputs is enabled.

hwconvolution (conv)

a max unpooling layer unpools the output of a max pooling layer.

no

hwconvolution (conv)

an average pooling layer performs downsampling by dividing the layer input into rectangular pooling regions and computing the average values of each region.

when generating code for a network using this layer, these limitations apply:

  • pool size must be 1-66.

  • stride size must be 1-15 and square.

  • padding size must be in the range 0-6.

yes

hwconvolution (conv)

a global average pooling layer performs downsampling by computing the mean of the height and width dimensions of the input.

when generating code for a network using this layer, these limitations apply:

  • the pool size must be 1-66 and square.

yes

combination layers

layerlayer type hardware (hw) or software(sw)layer output formatdescription and limitationsint8 compatible

hwinherit from input.

an addition layer adds inputs from multiple neural network layers element-wise.

you can now generated code for this layer with int8 data type when the layer is combined with a leaky relu or clipped relu layer.

when generating code for a network using this layer, these limitations apply:

  • both input layers must have the same output layer format. for example, both layers must have conv output format or fc output format.

yes

hwinherit from input.

a depth concatenation layer takes inputs that have the same height and width and concatenates them along the third dimension (the channel dimension).

when generating code for a network using this layer, these limitations apply:

  • the input activation feature number must be a multiple of the square root of the .

  • layers that have a conv output format and layers that have an fc output format cannot be concatenated together.

yes

hwinherit from inputa multiplication layer multiplies inputs from multiple neural network layers element-wise.no

sequence layers

layerlayer type hardware (hw) or software(sw)description and limitationsint8 compatible

hw

an lstm layer learns long-term dependencies between time steps in time series and sequence data. the layer performs additive interactions, which can help improve gradient flow over long sequences during training.

when generating code for a network using this layer, these limitations apply:

  • the input must be of single data type.

  • the outputmode property must be set to sequence.

no

hw

a gru layer is an rnn layer that learns dependencies between time steps in time series and sequence data.

when generating code for a network using this layer, these limitations apply:

  • inputs must be of single data type.

  • you must set the gru layer outputmode to sequence.

no

output layer

layerlayer type hardware (hw) or software(sw)description and limitationsint8 compatible

sw and hw

a softmax layer applies a softmax function to the input.

if the softmax layer is implemented in hardware:

  • the inputs must be in the range -87 to 88 .

  • softmax layer followed by adder layer or depth concatenation layer is not supported.

  • the inputs to this layer must have the format 1-by-n, n-by-1, 1-by-1-by-n, n-by-1-by-1, and 1-by-n-by-1.

  • if the convolution module of the deep learning processor is enabled the square root of the convolution thread number must be an integral power of two. if not, the layer is implemented in software.

yes. runs as single datatype in sw.

sw

a classification layer computes the cross-entropy loss for multiclass classification issues that have mutually exclusive classes.

yes

sw

a regression layer computes the half mean squared error loss for regression problems.

yes

sw and hw

a sigmoid layer applies a sigmoid function to the input.

when the data type is single the sigmoid layer is implemented in the custom module of the deep learning processor configuration. when generating code for a network using this layer, with single data type these limitations apply:

  • the inputs must be in the range -87 to 88 .

runs as single datatype in sw.

yes. when the data type is int8 the sigmoid layer is implemented in the fully connected (fc) module of the deep learning processor configuration. when generating code for a network using this layer, with int8 data type these limitations apply:

  • the inputs must be in the range -87 to 88 .

  • sigmoid layer followed by adder layer or depth concatenation layer is not supported.

  • the inputs to this layer must have the format 1-by-n, n-by-1, 1-by-1-by-n, n-by-1-by-1, and 1-by-n-by-1.

  • if the convolution module of the deep learning processor is enabled the square root of the convolution thread number must be an integral power of two. if not, the layer is implemented in software.

keras and onnx layers

layerlayer type hardware (hw) or software(sw)layer output formatdescription and limitationsint8 compatible
nnet.keras.layer.flattencstylelayerhwlayer will be fused

flatten activations into 1-d layers assuming c-style (row-major) order.

a nnet.keras.layer.flattencstylelayer is supported only when it is followed by a fully connected layer.

yes

nnet.keras.layer.zeropadding2dlayerhwlayer will be fused.

zero padding layer for 2-d input.

a nnet.keras.layer.zeropadding2dlayer is supported only when it is preceded by a convolution layer or a maxpool layer. zero padding layer is supported when followed by a grouped convolution layer.

yes

custom layers

layerlayer type hardware (hw) or software(sw)layer output formatdescription and limitationsint8 compatible
custom layershwinherit from inputcustom layers, with or without learnable parameters, that you define for your problem. to learn how to define your custom deep learning layers, see .no

supported boards

these boards are supported by deep learning hdl toolbox:

  • xilinx zynq®-7000 zc706

  • intel arria® 10 soc

  • xilinx zynq ultrascale ™ mpsoc zcu102

  • custom boards. for more information, see .

third-party synthesis tools and version support

deep learning hdl toolbox has been tested with:

  • xilinx vivado® design suite 2022.1

  • intel quartus® prime standard 21.1

image input layer normalization hardware implementation

to enable hardware implementation of the normalization functions for the image input layer, set the hardwarenormalization argument of the compile method to auto or on. when hardwarenormalization is set to auto, the compile method looks for the presence of addition and multiplication layers to implement the normalization function on hardware. the normalization is implemented on hardware by:

  • creating a new constant layer, this layer holds the value which is to be subtracted.

  • using existing addition and multiplication layers. the layers to be used depends on the normalization function being implemented.

constant layer buffer content

this table describes the value stored in the constant layer buffer.

normalization functionnumber of constantsconstant layer buffer value
zerocenter1- mean
zscore2the first constant value is -mean. the second constant value is 1/standarddeviation

related topics

    网站地图