![](/img/trans.png)
[英]InvalidArgumentError: required broadcastable shapes [Op:Add] tensorflow model
[英]InvalidArgumentError: required broadcastable shapes [Op:Mul]
我是 python 和 tensorflow 的菜鸟。我在 colab 中训练 tensorflow lite model 时遇到了问题。 model 在导出 model 之前很好。但是,当我使用以下代码在我的图像上测试 tflite 文件时,出现错误。
model.evaluate_tflite('/content/label-img/model.tflite', validation_data)
错误
---------------------------------------------------------------------------
InvalidArgumentError Traceback (most recent call last)
<ipython-input-22-6548d36b036c> in <module>()
----> 1 model.evaluate_tflite('/content/label-img/model.tflite', validation_data)
8 frames
/usr/local/lib/python3.7/dist-packages/tensorflow_examples/lite/model_maker/core/task/object_detector.py in evaluate_tflite(self, tflite_filepath, data)
187 ds = data.gen_dataset(self.model_spec, batch_size=1, is_training=False)
188 return self.model_spec.evaluate_tflite(tflite_filepath, ds, len(data),
--> 189 data.annotations_json_file)
190
191 def _export_saved_model(self, saved_model_dir: str) -> None:
/usr/local/lib/python3.7/dist-packages/tensorflow_examples/lite/model_maker/core/task/model_spec/object_detector_spec.py in evaluate_tflite(self, tflite_filepath, dataset, steps, json_file)
386 normalize_factor = tf.constant([height, width, height, width],
387 dtype=tf.float32)
--> 388 nms_boxes *= normalize_factor
389 if labels['image_scales'] is not None:
390 scales = tf.expand_dims(tf.expand_dims(labels['image_scales'], -1), -1)
/usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/math_ops.py in r_binary_op_wrapper(y, x)
1398 # r_binary_op_wrapper use different force_same_dtype values.
1399 y, x = maybe_promote_tensors(y, x)
-> 1400 return func(x, y, name=name)
1401
1402 # Propagate func.__doc__ to the wrappers
/usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/math_ops.py in _mul_dispatch(x, y, name)
1708 return sparse_tensor.SparseTensor(y.indices, new_vals, y.dense_shape)
1709 else:
-> 1710 return multiply(x, y, name=name)
1711
1712
/usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py in wrapper(*args, **kwargs)
204 """Call target, and fall back on dispatchers if there is a TypeError."""
205 try:
--> 206 return target(*args, **kwargs)
207 except (TypeError, ValueError):
208 # Note: convert_to_eager_tensor currently raises a ValueError, not a
/usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/math_ops.py in multiply(x, y, name)
528 """
529
--> 530 return gen_math_ops.mul(x, y, name)
531
532
/usr/local/lib/python3.7/dist-packages/tensorflow/python/ops/gen_math_ops.py in mul(x, y, name)
6234 return _result
6235 except _core._NotOkStatusException as e:
-> 6236 _ops.raise_from_not_ok_status(e, name)
6237 except _core._FallbackException:
6238 pass
/usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/ops.py in raise_from_not_ok_status(e, name)
6939 message = e.message + (" name: " + name if name is not None else "")
6940 # pylint: disable=protected-access
-> 6941 six.raise_from(core._status_to_exception(e.code, message), None)
6942 # pylint: enable=protected-access
6943
/usr/local/lib/python3.7/dist-packages/six.py in raise_from(value, from_value)
InvalidArgumentError: required broadcastable shapes [Op:Mul]
这个错误应该是由于形状不同造成的。 但是谁能告诉我如何在 colab 中进行广播? 代码和 colab 来自https://colab.research.google.com/github/googlecodelabs/odml-pathways/blob/main/object-detection/codelab2/python/Train_a_salad_detector_with_TFLite_Model_Maker.ipynb#scrollTo=HD5BvzWe6YKa 。 tensorflow官方教程。
目前,上述 colab 存在 TensorFlow 2.6 或更高版本的问题。 请暂时使用 TensorFlow 2.5。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.