簡體   English   中英

InvalidArgumentError:需要廣播形狀 [Op:Mul]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM