void BatchNormalizationNodeConverter::convertV7(const onnx::NodeProto &onnx_node,
ConverterContext *context) const
{
- const auto spatial = getAttributeValue<int64_t>(onnx_node, "spatial", 1);
- if (spatial != 1)
- throw std::runtime_error("Not supported spatial attribute!");
+ // spatial attribute used only for learning
convertV9(onnx_node, context);
}
const auto *dilations = findAttribute(onnx_node, "dilations");
if (dilations != nullptr)
- throw std::runtime_error("Not supported dilations in Conv operation!");
+ {
+ // check default (=1) dilations on each spatial axis
+ for (auto index = 0; index < dilations->ints_size(); index++)
+ if (dilations->ints(index) != 1)
+ throw std::runtime_error("Not supported dilations in Conv operation!");
+ }
std::vector<mir::Operation::Output *> inputs = context->getNodeInputs(onnx_node);
mir::Graph *graph = context->getGraph();
const auto *dilations = findAttribute(onnx_node, "dilations");
if (dilations != nullptr)
- throw std::runtime_error("Not supported dilations in Conv operation!");
+ {
+ // check default (=1) dilations on each spatial axis
+ for (auto index = 0; index < dilations->ints_size(); index++)
+ if (dilations->ints(index) != 1)
+ throw std::runtime_error("Not supported dilations in MaxPool operation!");
+ }
convertV8(onnx_node, context);
}