The class implements a layer that extracts a subsequence from each vector sequence of the set.
void SetStartPos(int startPos);Sets the position of the first element of the subsequence. For startPos >= 0, the position will be counted from the start of the original sequence. For startPos < 0 it will be counted from the end, with -1 standing for the last element of the original sequence.
void SetLength(int length);Sets the length of the subsequence to be extracted. If length > 0, the order of elements is the same as in the original. If length < 0, the order is reversed.
The length of the subsequence actually extracted will be not greater than abs(length), but may be smaller if the specified length would not fit into the original after starting at the specified position.
void SetReverse();Sets the length and starting position so that the original will be reversed as a whole, without changing its length.
The layer has no trainable parameters.
The single input accepts a blob with a set of objects; the objects are numbered along the BatchLength dimension of this blob.
The single output returns a blob with the subsequence of objects, of the following dimensions:
BatchLengthis equal to the smaller value out ofabs(GetLength()and the maximum length of the subsequence for which it still fits into the original.- The rest of the dimensions are equal to the input dimensions.