MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / VerifyTensors

Function VerifyTensors

tensorflow/lite/tools/verifier.cc:318–363  ·  view source on GitHub ↗

Verifies tensors have valid properties and legit buffer if set.

Source from the content-addressed store, hash-verified

316
317// Verifies tensors have valid properties and legit buffer if set.
318bool VerifyTensors(const Model& model, ErrorReporter* error_reporter) {
319 if (!model.subgraphs()) {
320 return true;
321 }
322 if (!model.buffers()) {
323 ReportError(error_reporter, "Missing 'buffers' section.");
324 return false;
325 }
326
327 for (const auto& subgraph : *model.subgraphs()) {
328 if (!subgraph->tensors()) {
329 continue;
330 }
331 for (const auto& tensor : *subgraph->tensors()) {
332 if (!tensor->buffer()) {
333 continue;
334 }
335 if (tensor->buffer() >= model.buffers()->size()) {
336 ReportError(error_reporter, "Tensor %s invalid buffer index: %d",
337 tensor->name(), tensor->buffer());
338 return false;
339 }
340 auto* buffer = model.buffers()->Get(tensor->buffer());
341 if (!buffer) {
342 ReportError(error_reporter, "Tensor %s buffer %d not set",
343 tensor->name(), tensor->buffer());
344 return false;
345 }
346
347 // Many transient tensors don't have data in the flatbuffer. Their
348 // buffers will be allocated by the interpreter at run-time.
349 if (buffer->data()) {
350 if (tensor->type() == TensorType_STRING) {
351 if (!VerifyStringTensorBuffer(*tensor, *buffer, error_reporter)) {
352 return false;
353 }
354 } else {
355 if (!VerifyNumericTensorBuffer(*tensor, *buffer, error_reporter)) {
356 return false;
357 }
358 }
359 }
360 }
361 }
362 return true;
363}
364
365bool VerifyOps(const Model& model, const OpResolver& resolver,
366 ErrorReporter* error_reporter) {

Callers 1

VerifyFunction · 0.85

Calls 10

VerifyStringTensorBufferFunction · 0.85
tensorsMethod · 0.80
ReportErrorFunction · 0.70
nameMethod · 0.65
typeMethod · 0.65
bufferMethod · 0.45
sizeMethod · 0.45
GetMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected