[CPU] An input 'sequence_length' values check was added to CTCGreedyDecoderSeqLen (#5284)
This commit is contained in:
parent
ce0e2881c7
commit
e0187da009
@ -15,7 +15,7 @@ namespace Cpu {
|
|||||||
class CTCGreedyDecoderSeqLenImpl: public ExtLayerBase {
|
class CTCGreedyDecoderSeqLenImpl: public ExtLayerBase {
|
||||||
public:
|
public:
|
||||||
explicit CTCGreedyDecoderSeqLenImpl(const CNNLayer* layer) : mergeRepeated_(true) {
|
explicit CTCGreedyDecoderSeqLenImpl(const CNNLayer* layer) : mergeRepeated_(true) {
|
||||||
std::string errPrefix = "CTCGreedyDecoderSeqLen layer with name '" + layer->name + "' ";
|
errPrefix = "CTCGreedyDecoderSeqLen layer with name '" + layer->name + "' ";
|
||||||
if (layer->insData.size() < 2 || layer->insData.size() > 3)
|
if (layer->insData.size() < 2 || layer->insData.size() > 3)
|
||||||
IE_THROW() << errPrefix << "has invalid number of input edges: " << layer->insData.size();
|
IE_THROW() << errPrefix << "has invalid number of input edges: " << layer->insData.size();
|
||||||
if (layer->outData.size() != 2)
|
if (layer->outData.size() != 2)
|
||||||
@ -75,6 +75,16 @@ public:
|
|||||||
|
|
||||||
size_t workAmount = 0;
|
size_t workAmount = 0;
|
||||||
for (size_t b = 0; b < B; b++) {
|
for (size_t b = 0; b < B; b++) {
|
||||||
|
if (sequenceLengths[b] > T) {
|
||||||
|
if (resp) {
|
||||||
|
std::string errorMsg = errPrefix
|
||||||
|
+ ". Sequence length " + std::to_string(sequenceLengths[b])
|
||||||
|
+ " cannot be greater than according decoded classes dimension size "
|
||||||
|
+ std::to_string(outputs[DECODED_CLASSES_INDEX]->getTensorDesc().getDims()[1]);
|
||||||
|
errorMsg.copy(resp->msg, sizeof(resp->msg) - 1);
|
||||||
|
}
|
||||||
|
return PARAMETER_MISMATCH;
|
||||||
|
}
|
||||||
workAmount += sequenceLengths[b];
|
workAmount += sequenceLengths[b];
|
||||||
}
|
}
|
||||||
// Parallelization could not be made directly by T due to output index depends on merged classes and
|
// Parallelization could not be made directly by T due to output index depends on merged classes and
|
||||||
@ -153,6 +163,7 @@ private:
|
|||||||
const size_t DECODED_CLASSES_INDEX = 0lu;
|
const size_t DECODED_CLASSES_INDEX = 0lu;
|
||||||
const size_t DECODED_CLASSES_LENGTH_INDEX = 1lu;
|
const size_t DECODED_CLASSES_LENGTH_INDEX = 1lu;
|
||||||
bool mergeRepeated_;
|
bool mergeRepeated_;
|
||||||
|
std::string errPrefix;
|
||||||
};
|
};
|
||||||
|
|
||||||
REG_FACTORY_FOR(CTCGreedyDecoderSeqLenImpl, CTCGreedyDecoderSeqLen);
|
REG_FACTORY_FOR(CTCGreedyDecoderSeqLenImpl, CTCGreedyDecoderSeqLen);
|
||||||
|
Loading…
Reference in New Issue
Block a user