mirror of
https://github.com/opencv/opencv.git
synced 2024-11-26 04:00:30 +08:00
fix the infinite loop in tf importer.
This commit is contained in:
parent
87360c2ae5
commit
18fbb72f7d
@ -829,12 +829,19 @@ void RemoveIdentityOps(tensorflow::GraphDef& net)
|
|||||||
IdentityOpsMap::iterator it = identity_ops.find(input_op_name);
|
IdentityOpsMap::iterator it = identity_ops.find(input_op_name);
|
||||||
|
|
||||||
if (it != identity_ops.end()) {
|
if (it != identity_ops.end()) {
|
||||||
|
std::set<String> loopCheckSet;
|
||||||
// In case of Identity after Identity
|
// In case of Identity after Identity
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
IdentityOpsMap::iterator nextIt = identity_ops.find(it->second);
|
IdentityOpsMap::iterator nextIt = identity_ops.find(it->second);
|
||||||
if (nextIt != identity_ops.end())
|
if (nextIt != identity_ops.end())
|
||||||
|
{
|
||||||
|
// Loop check
|
||||||
|
if (loopCheckSet.find(it->second) != loopCheckSet.end())
|
||||||
|
CV_Error(Error::StsError, "Found a loop in your input Tensorflow model, which is illegal!");
|
||||||
|
loopCheckSet.insert(it->second);
|
||||||
it = nextIt;
|
it = nextIt;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user