- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi ,
I check the OpenVINO sample codes,
found layer definitions like this,
/**
* @brief This class represents a standard 3D Convolution Layer
*/
class ConvolutionLayer : public WeightableLayer {
public:
/**
* @brief A convolution kernel array [X, Y, Z, ...]
*/
DEFINE_PROP(_kernel);
/**
* @brief A convolution paddings begin array [X, Y, Z, ...]
*/
DEFINE_PROP(_padding);
/**
* @brief A convolution paddings end array [X, Y, Z, ...]
*/
PropertyVector<unsigned int> _pads_end;
/**
* @brief A convolution strides array [X, Y, Z, ...]
*/
DEFINE_PROP(_stride);
/**
* @brief A convolution dilations array [X, Y, Z, ...]
*/
DEFINE_PROP(_dilation);
/**
* @brief A number of output feature maps (size) generating the 3'rd output dimension
*/
unsigned int _out_depth = 0u;
/**
* @brief Number of groups
*/
unsigned int _group = 1u;
/**
* @brief Auto padding type
*/
std::string _auto_pad;
/**
* @brief Creates a new ConvolutionLayer instance.
*/
explicit ConvolutionLayer(const LayerParams &p) : WeightableLayer(p),
_kernel(2, 0u), _padding(2, 0u), _stride(2, 1u), _dilation(2, 1u) {}
/**
* @brief assignment operator
*/
ConvolutionLayer & operator = (const ConvolutionLayer & that) {
if (&that != this) {
WeightableLayer::operator=(that);
_kernel = that._kernel;
_padding = that._padding;
_pads_end = that._pads_end;
_stride = that._stride;
_dilation = that._dilation;
_out_depth = that._out_depth;
_group = that._group;
}
return *this;
}
/**
* @brief move assignment operator
*/
ConvolutionLayer& operator = (ConvolutionLayer &&) = default;
/**
* @brief copy constructor
*/
ConvolutionLayer(const ConvolutionLayer & that) : WeightableLayer(that) {
operator = (that);
}
/**
* @brief move constructor
*/
ConvolutionLayer(ConvolutionLayer &&) = default;
};
And in the model file .xml, a ConvolutionLayer is defined as ,
<layer id="1" name="detector/yolo-v3-tiny/Conv/Conv2D" precision="FP32" type="Convolution"> <data auto_pad="same_upper" dilations="1,1" group="1" kernel="3,3" output="16" pads_begin="1,1" pads_end="1,1" strides="1,1"/> <input> <port id="0"> <dim>1</dim> <dim>3</dim> <dim>416</dim> <dim>416</dim> </port> </input> <output> <port id="3"> <dim>1</dim> <dim>16</dim> <dim>416</dim> <dim>416</dim> </port> </output> <blobs> <weights offset="0" size="1728"/> <biases offset="1728" size="64"/> </blobs> </layer>
Which means I can convert my own model directly into IR model. However, there are some informations I can't understand, like pads_begin and pads_end, could you please give me some more details? Thank you very much.
Something else I am confused is , I see yolo layer definition like
<layer id="30" name="detector/yolo-v3-tiny/Conv_12/BiasAdd/YoloRegion" precision="FP32" type="RegionYolo"> <data axis="1" classes="80" coords="4" do_softmax="0" end_axis="3" mask="0,1,2" num="9"/> <input> <port id="0"> <dim>1</dim> <dim>255</dim> <dim>26</dim> <dim>26</dim> </port> </input> <output> <port id="1"> <dim>1</dim> <dim>255</dim> <dim>26</dim> <dim>26</dim> </port> </output> </layer>
but no corresponding layer in ie_layers.h.
I created my own tiny DNN framework RQNet and really want to deploy models on NCS2. Your guidance is very appreciated.
Regards,
Ross
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dearest Ross:
I hope this document explains it for you:
https://software.intel.com/en-us/articles/OpenVINO-ModelOptimizer
On the left side, find Intermediate Representation Notation Reference Catalog then Pad Layer.
Thanks for using OpenVino !
Shubha
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
That explains a lot, very detailed. Thank you very much.
Will create a thread to show how to it if I can successfully translate my model into IR model.
Shubha R. (Intel) wrote:Dearest Ross:
I hope this document explains it for you:
https://software.intel.com/en-us/articles/OpenVINO-ModelOptimizer
On the left side, find Intermediate Representation Notation Reference Catalog then Pad Layer.
Thanks for using OpenVino !
Shubha
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dearest Ross,
here is the preferred doc location but it should be similar to what I posted above:
It is preferred because OpenVino docs have moved to the https://docs.openvinotoolkit.org/ site. It takes a little while to get used to but if you're patient (:)) you can find everything you need.
Shubha
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wonderful, Shubha!
Shubha R. (Intel) wrote:Dearest Ross,
here is the preferred doc location but it should be similar to what I posted above:
It is preferred because OpenVino docs have moved to the https://docs.openvinotoolkit.org/ site. It takes a little while to get used to but if you're patient (:)) you can find everything you need.
Shubha
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Shubha,
Is the "bias" field a mandatory field in Convolution layer?

Shubha R. (Intel) wrote:Dearest Ross,
here is the preferred doc location but it should be similar to what I posted above:
It is preferred because OpenVino docs have moved to the https://docs.openvinotoolkit.org/ site. It takes a little while to get used to but if you're patient (:)) you can find everything you need.
Shubha
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Another question,
from the page of
, I can not see any instruction how to use my gamma and beta been trained in the layer.
Shubha R. (Intel) wrote:Dearest Ross,
here is the preferred doc location but it should be similar to what I posted above:
It is preferred because OpenVino docs have moved to the https://docs.openvinotoolkit.org/ site. It takes a little while to get used to but if you're patient (:)) you can find everything you need.
Shubha
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hope this is right.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page