nyadla-sys / whisper.tflite

Optimized OpenAI's Whisper TFLite Port for Efficient Offline Inference on Edge Devices
MIT License
134 stars 29 forks source link

Transcription generation(last cell) in the TFlite conversion notebook throws error #33

Closed zhubarb closed 3 months ago

zhubarb commented 3 months ago

I tried running the tflite conversion notebook under /models in colab. It all runs OK until the final cell:


# loaded model... now with generate!
tflite_model_path = 'whisper-tiny.en.tflite'
interpreter = tf.lite.Interpreter(tflite_model_path)

tflite_generate = interpreter.get_signature_runner()
generated_ids = tflite_generate(input_features=input_features)["sequences"]
transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]

Here, I get the error. To reproduce, you can run the notebook front to back in colab, and you should see the error. Any ideas why this is happening? Is it a version issue. What were the original package versions for !pip install transformers !pip install datasets?

---------------------------------------------------------------------------

RuntimeError                              Traceback (most recent call last)

[<ipython-input-5-aff8cd54abe2>](https://localhost:8080/#) in <cell line: 6>()
      4 
      5 tflite_generate = interpreter.get_signature_runner()
----> 6 generated_ids = tflite_generate(input_features=input_features)["sequences"]
      7 transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
      8 transcription

[/usr/local/lib/python3.10/dist-packages/tensorflow/lite/python/interpreter.py](https://localhost:8080/#) in __call__(self, **kwargs)
    247                                           self._subgraph_index)
    248 
--> 249     self._interpreter_wrapper.Invoke(self._subgraph_index)
    250     result = {}
    251     for output_name, output_index in self._outputs:

RuntimeError: tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::apply(optimized_ops::Mean<T, U>, args) was not true.tensorflow/lite/kernels/reduce.cc:445 std::appl...
zhubarb commented 3 months ago

It is a versioning error as expected. Tensorflow 15.0 messes everything up. Not the first time it is getting in my way(!).

Replace the import with

!pip install transformers==4.33.0
!pip install datasets
!pip install tensorflow==2.14.0

And the notebook runs without errors.