return os;
}
+template <typename T> void dump_fbvect(std::ostream &os, const flatbuffers::Vector<T> *fbvect)
+{
+ if (fbvect == nullptr)
+ return;
+
+ for (uint32_t q = 0; q < fbvect->size(); q++)
+ {
+ if (q)
+ os << ", ";
+ os << fbvect->Get(q);
+ }
+}
+
+template <typename T>
+std::ostream &operator<<(std::ostream &os, const flatbuffers::Vector<T> *fbvect)
+{
+ dump_fbvect(os, fbvect);
+ return os;
+}
+
void dump_model(std::ostream &os, const tflite::Model *model)
{
tflread::Reader reader(model);
os << "(" << dims << ") ";
os << "B(" << tensor->buffer() << ") ";
os << tflread::tensor_name(tensor) << std::endl;
+
+ if (auto q_params = tensor->quantization())
+ {
+ if (q_params->min() && q_params->max() || q_params->scale() && q_params->zero_point())
+ {
+ os << " Quantization: ";
+
+ if (q_params->min())
+ os << "min(" << q_params->min() << ") ";
+ if (q_params->max())
+ os << "max(" << q_params->max() << ") ";
+ if (q_params->scale())
+ os << "scale(" << q_params->scale() << ") ";
+ if (q_params->zero_point())
+ os << "zeropt(" << q_params->zero_point() << ") ";
+
+ os << std::endl;
+ }
+ }
}
os << std::endl;