Armadilloフォーラム

サンプルアプリの転移学習について

tetsuo.yamashita

2022年2月24日 16時37分

「Armadillo Base OS 開発ガイド 6.2.2 推論モデルの生成」に記載の google colab 上の notebook で転移学習+TF Lite モデルの生成に取り組んでいますが、現在、以下のようなエラーにて途中で止まります。
御社側でも同様の現象が確認できるか、また、対応方法について教えていただけませんでしょうか?

1. ライブラリ群のインポート
import cv2 のところでエラーになるようです。

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-7-06c3fa389423> in <module>()
     10 import shutil
     11 import copy
---> 12 import cv2
     13 import numpy as np
     14 from six import BytesIO
 
3 frames
/usr/local/lib/python3.7/dist-packages/cv2/__init__.py in <module>()
      7 
      8 from .cv2 import *
----> 9 from .cv2 import _registerMatType
     10 from . import mat_wrapper
     11 from . import gapi
 
ImportError: cannot import name '_registerMatType' from 'cv2.cv2' (/usr/local/lib/python3.7/dist-packages/cv2/cv2.cpython-37m-x86_64-linux-gnu.so)
 
---------------------------------------------------------------------------
NOTE: If your import is failing due to a missing package, you can
manually install dependencies using either !pip or !apt.
 
To view examples of installing some common dependencies, click the
"Open Examples" button below.
---------------------------------------------------------------------------

こちらは、このセルを実行する前に

!pip install "opencv-python-headless<4.3"

を実行することでエラーが出なくなりました。
(参照 https://github.com/opencv/opencv-python/issues/591

2. tfrecord 形式に変換 - 学習用データセットを tfrecord 化
label_map.pbtxt が /02_annotaions/ に無い旨でエラーが出ます。
これは事前作成済の label_map.pbtxt を /02_annotations/ に置くことで解決しました。

Traceback (most recent call last):
  File "models/research/object_detection/dataset_tools/create_pascal_tf_record.py", line 185, in <module>
    tf.app.run()
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/platform/app.py", line 36, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 312, in run
    _run_main(main, args)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 258, in _run_main
    sys.exit(main(argv))
  File "models/research/object_detection/dataset_tools/create_pascal_tf_record.py", line 160, in main
    label_map_dict = label_map_util.get_label_map_dict(FLAGS.label_map_path)
  File "/usr/local/lib/python3.7/dist-packages/object_detection/utils/label_map_util.py", line 201, in get_label_map_dict
    label_map = load_labelmap(label_map_path_or_proto)
  File "/usr/local/lib/python3.7/dist-packages/object_detection/utils/label_map_util.py", line 168, in load_labelmap
    label_map_string = fid.read()
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/lib/io/file_io.py", line 114, in read
    self._preread_check()
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/lib/io/file_io.py", line 77, in _preread_check
    compat.path_to_str(self.__name), 1024 * 512)
tensorflow.python.framework.errors_impl.NotFoundError: /content/working/02_annotations/label_map.pbtxt; No such file or directory

label_map.pbtxt を配置後に実行してみると、次は ValueError が出てしまいます。

I0224 07:44:47.120877 140626652034944 create_pascal_tf_record.py:163] Reading from PASCAL VOC2007 dataset.
I0224 07:44:47.122071 140626652034944 create_pascal_tf_record.py:170] On image 0 of 57
/usr/local/lib/python3.7/dist-packages/object_detection/utils/dataset_util.py:83: FutureWarning: The behavior of this method will change in future versions. Use specific 'len(elem)' or 'elem is not None' test instead.
  if not xml:
Traceback (most recent call last):
  File "models/research/object_detection/dataset_tools/create_pascal_tf_record.py", line 185, in <module>
    tf.app.run()
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/platform/app.py", line 36, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 312, in run
    _run_main(main, args)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 258, in _run_main
    sys.exit(main(argv))
  File "models/research/object_detection/dataset_tools/create_pascal_tf_record.py", line 178, in main
    FLAGS.ignore_difficult_instances)
  File "models/research/object_detection/dataset_tools/create_pascal_tf_record.py", line 92, in dict_to_tf_example
    raise ValueError('Image format not JPEG')
ValueError: Image format not JPEG

しかし working/train.record は生成されていたので、そのまま進めました。
このエラーに対して何かできることを教えていただけませんでしょうか?

3. 学習開始
学習開始すると「DNN library is not found.」で止まってしまいます。
これについて、御社でも確認できるか、また、解消方法について教えていただけませんでしょうか?

2022-02-24 07:50:34.218309: W tensorflow/core/common_runtime/gpu/gpu_bfc_allocator.cc:39] Overriding allow_growth setting because the TF_FORCE_GPU_ALLOW_GROWTH environment variable is set. Original config value was 0.
INFO:tensorflow:Using MirroredStrategy with devices ('/job:localhost/replica:0/task:0/device:GPU:0',)
I0224 07:50:34.224514 139897355097984 mirrored_strategy.py:374] Using MirroredStrategy with devices ('/job:localhost/replica:0/task:0/device:GPU:0',)
INFO:tensorflow:Maybe overwriting train_steps: 1000
I0224 07:50:34.229172 139897355097984 config_util.py:552] Maybe overwriting train_steps: 1000
INFO:tensorflow:Maybe overwriting use_bfloat16: False
I0224 07:50:34.229360 139897355097984 config_util.py:552] Maybe overwriting use_bfloat16: False
WARNING:tensorflow:From /usr/local/lib/python3.7/dist-packages/object_detection/model_lib_v2.py:564: StrategyBase.experimental_distribute_datasets_from_function (from tensorflow.python.distribute.distribute_lib) is deprecated and will be removed in a future version.
Instructions for updating:
rename to distribute_datasets_from_function
W0224 07:50:34.412206 139897355097984 deprecation.py:343] From /usr/local/lib/python3.7/dist-packages/object_detection/model_lib_v2.py:564: StrategyBase.experimental_distribute_datasets_from_function (from tensorflow.python.distribute.distribute_lib) is deprecated and will be removed in a future version.
Instructions for updating:
rename to distribute_datasets_from_function
INFO:tensorflow:Reading unweighted datasets: ['/content/working/train.record']
I0224 07:50:34.418149 139897355097984 dataset_builder.py:163] Reading unweighted datasets: ['/content/working/train.record']
INFO:tensorflow:Reading record datasets for input file: ['/content/working/train.record']
I0224 07:50:34.418397 139897355097984 dataset_builder.py:80] Reading record datasets for input file: ['/content/working/train.record']
INFO:tensorflow:Number of filenames to read: 1
I0224 07:50:34.418554 139897355097984 dataset_builder.py:81] Number of filenames to read: 1
WARNING:tensorflow:num_readers has been reduced to 1 to match input file shards.
W0224 07:50:34.418692 139897355097984 dataset_builder.py:88] num_readers has been reduced to 1 to match input file shards.
WARNING:tensorflow:From /usr/local/lib/python3.7/dist-packages/object_detection/builders/dataset_builder.py:105: parallel_interleave (from tensorflow.python.data.experimental.ops.interleave_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.data.Dataset.interleave(map_func, cycle_length, block_length, num_parallel_calls=tf.data.AUTOTUNE)` instead. If sloppy execution is desired, use `tf.data.Options.deterministic`.
W0224 07:50:34.421730 139897355097984 deprecation.py:343] From /usr/local/lib/python3.7/dist-packages/object_detection/builders/dataset_builder.py:105: parallel_interleave (from tensorflow.python.data.experimental.ops.interleave_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.data.Dataset.interleave(map_func, cycle_length, block_length, num_parallel_calls=tf.data.AUTOTUNE)` instead. If sloppy execution is desired, use `tf.data.Options.deterministic`.
WARNING:tensorflow:From /usr/local/lib/python3.7/dist-packages/object_detection/builders/dataset_builder.py:237: DatasetV1.map_with_legacy_function (from tensorflow.python.data.ops.dataset_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.data.Dataset.map()
W0224 07:50:34.446030 139897355097984 deprecation.py:343] From /usr/local/lib/python3.7/dist-packages/object_detection/builders/dataset_builder.py:237: DatasetV1.map_with_legacy_function (from tensorflow.python.data.ops.dataset_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.data.Dataset.map()
WARNING:tensorflow:From /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py:1082: sparse_to_dense (from tensorflow.python.ops.sparse_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Create a `tf.sparse.SparseTensor` and use `tf.sparse.to_dense` instead.
W0224 07:50:43.217514 139897355097984 deprecation.py:343] From /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py:1082: sparse_to_dense (from tensorflow.python.ops.sparse_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Create a `tf.sparse.SparseTensor` and use `tf.sparse.to_dense` instead.
WARNING:tensorflow:From /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py:1082: sample_distorted_bounding_box (from tensorflow.python.ops.image_ops_impl) is deprecated and will be removed in a future version.
Instructions for updating:
`seed2` arg is deprecated.Use sample_distorted_bounding_box_v2 instead.
W0224 07:50:47.361238 139897355097984 deprecation.py:343] From /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py:1082: sample_distorted_bounding_box (from tensorflow.python.ops.image_ops_impl) is deprecated and will be removed in a future version.
Instructions for updating:
`seed2` arg is deprecated.Use sample_distorted_bounding_box_v2 instead.
WARNING:tensorflow:From /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py:1082: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.cast` instead.
W0224 07:50:50.862764 139897355097984 deprecation.py:343] From /usr/local/lib/python3.7/dist-packages/tensorflow/python/util/dispatch.py:1082: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.cast` instead.
/usr/local/lib/python3.7/dist-packages/keras/backend.py:450: UserWarning: `tf.keras.backend.set_learning_phase` is deprecated and will be removed after 2020-10-11. To update it, simply pass a True/False value to the `training` argument of the `__call__` method of your layer or model.
  warnings.warn('`tf.keras.backend.set_learning_phase` is deprecated and '
INFO:tensorflow:depth of additional conv before box predictor: 0
I0224 07:51:03.271291 139892860987136 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0
INFO:tensorflow:depth of additional conv before box predictor: 0
I0224 07:51:03.271718 139892860987136 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0
INFO:tensorflow:depth of additional conv before box predictor: 0
I0224 07:51:03.271968 139892860987136 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0
INFO:tensorflow:depth of additional conv before box predictor: 0
I0224 07:51:03.272193 139892860987136 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0
INFO:tensorflow:depth of additional conv before box predictor: 0
I0224 07:51:03.272479 139892860987136 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0
INFO:tensorflow:depth of additional conv before box predictor: 0
I0224 07:51:03.272708 139892860987136 convolutional_keras_box_predictor.py:154] depth of additional conv before box predictor: 0
2022-02-24 07:51:23.336147: E tensorflow/stream_executor/cuda/cuda_dnn.cc:361] Loaded runtime CuDNN library: 8.0.5 but source was compiled with: 8.1.0.  CuDNN library needs to have matching major version and equal or higher minor version. If using a binary install, upgrade your CuDNN library.  If building from sources, make sure the library loaded at runtime is compatible with the version specified during compile configuration.
2022-02-24 07:51:23.337923: W tensorflow/core/framework/op_kernel.cc:1745] OP_REQUIRES failed at conv_ops.cc:1120 : UNIMPLEMENTED: DNN library is not found.
Traceback (most recent call last):
  File "/content/models/research/object_detection/model_main_tf2.py", line 115, in <module>
    tf.compat.v1.app.run()
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/platform/app.py", line 36, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 312, in run
    _run_main(main, args)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 258, in _run_main
    sys.exit(main(argv))
  File "/content/models/research/object_detection/model_main_tf2.py", line 112, in main
    record_summaries=FLAGS.record_summaries)
  File "/usr/local/lib/python3.7/dist-packages/object_detection/model_lib_v2.py", line 609, in train_loop
    train_input, unpad_groundtruth_tensors)
  File "/usr/local/lib/python3.7/dist-packages/object_detection/model_lib_v2.py", line 400, in load_fine_tune_checkpoint
    _ensure_model_is_built(model, input_dataset, unpad_groundtruth_tensors)
  File "/usr/local/lib/python3.7/dist-packages/object_detection/model_lib_v2.py", line 178, in _ensure_model_is_built
    labels,
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/distribute_lib.py", line 1312, in run
    return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/distribute_lib.py", line 2888, in call_for_each_replica
    return self._call_for_each_replica(fn, args, kwargs)
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/mirrored_strategy.py", line 677, in _call_for_each_replica
    self._container_strategy(), fn, args, kwargs)
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/mirrored_run.py", line 82, in call_for_each_replica
    return wrapped(args, kwargs)
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/util/traceback_utils.py", line 153, in error_handler
    raise e.with_traceback(filtered_tb) from None
  File "/usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/execute.py", line 55, in quick_execute
    inputs, attrs, num_outputs)
tensorflow.python.framework.errors_impl.UnimplementedError: Graph execution error:
 
Detected at node 'ssd_mobile_net_v2_keras_feature_extractor/model/Conv1/Conv2D' defined at (most recent call last):
    File "/usr/lib/python3.7/threading.py", line 890, in _bootstrap
      self._bootstrap_inner()
    File "/usr/lib/python3.7/threading.py", line 926, in _bootstrap_inner
      self.run()
    File "/usr/local/lib/python3.7/dist-packages/object_detection/model_lib_v2.py", line 170, in _dummy_computation_fn
      return _compute_losses_and_predictions_dicts(model, features, labels,
    File "/usr/local/lib/python3.7/dist-packages/object_detection/model_lib_v2.py", line 123, in _compute_losses_and_predictions_dicts
      prediction_dict = model.predict(
    File "/usr/local/lib/python3.7/dist-packages/object_detection/meta_architectures/ssd_meta_arch.py", line 569, in predict
      if self._feature_extractor.is_keras_model:
    File "/usr/local/lib/python3.7/dist-packages/object_detection/meta_architectures/ssd_meta_arch.py", line 570, in predict
      feature_maps = self._feature_extractor(preprocessed_inputs)
    File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 64, in error_handler
      return fn(*args, **kwargs)
    File "/usr/local/lib/python3.7/dist-packages/keras/engine/base_layer.py", line 1096, in __call__
      outputs = call_fn(inputs, *args, **kwargs)
    File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 92, in error_handler
      return fn(*args, **kwargs)
    File "/usr/local/lib/python3.7/dist-packages/object_detection/meta_architectures/ssd_meta_arch.py", line 251, in call
      return self._extract_features(inputs)
    File "/usr/local/lib/python3.7/dist-packages/object_detection/models/ssd_mobilenet_v2_keras_feature_extractor.py", line 161, in _extract_features
      image_features = self.classification_backbone(
    File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 64, in error_handler
      return fn(*args, **kwargs)
    File "/usr/local/lib/python3.7/dist-packages/keras/engine/base_layer.py", line 1096, in __call__
      outputs = call_fn(inputs, *args, **kwargs)
    File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 92, in error_handler
      return fn(*args, **kwargs)
    File "/usr/local/lib/python3.7/dist-packages/keras/engine/functional.py", line 452, in call
      inputs, training=training, mask=mask)
    File "/usr/local/lib/python3.7/dist-packages/keras/engine/functional.py", line 589, in _run_internal_graph
      outputs = node.layer(*args, **kwargs)
    File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 64, in error_handler
      return fn(*args, **kwargs)
    File "/usr/local/lib/python3.7/dist-packages/keras/engine/base_layer.py", line 1096, in __call__
      outputs = call_fn(inputs, *args, **kwargs)
    File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 92, in error_handler
      return fn(*args, **kwargs)
    File "/usr/local/lib/python3.7/dist-packages/keras/layers/convolutional.py", line 248, in call
      outputs = self.convolution_op(inputs, self.kernel)
    File "/usr/local/lib/python3.7/dist-packages/keras/layers/convolutional.py", line 240, in convolution_op
      name=self.__class__.__name__)
Node: 'ssd_mobile_net_v2_keras_feature_extractor/model/Conv1/Conv2D'
DNN library is not found.
	 [[{{node ssd_mobile_net_v2_keras_feature_extractor/model/Conv1/Conv2D}}]] [Op:__inference__dummy_computation_fn_21524]

移行のセルはまだ実行できておりませんが、以上の 3 つについて教えていただけまでんでしょうか?

また、よろしければ、このノートブックで最終的に得られる TFLite モデルのファイルを頂くことは可能でしょうか?
(Armadillo-IoT G4 でのサンプルアプリケーションの作成の試行自体は TFLite モデルのファイルがあれば進められそうなので)

よろしくお願いいたします。

コメント

at_akihito.irie

2022年2月24日 17時16分

入江です。

> また、よろしければ、このノートブックで最終的に得られる TFLite モデルのファイルを頂くことは可能でしょうか?
> (Armadillo-IoT G4 でのサンプルアプリケーションの作成の試行自体は TFLite モデルのファイルがあれば進められそうなので)

取り急ぎ上記への回答のみお送りします。

開発ガイド内で使用しているファイルは以下からダウンロード出来ます。
https://download.atmark-techno.com/armadillo-iot-g4/example/armadillo-b…

上記リンクのread_meter.tar.gzをダウンロード・展開することで、
model.tfliteが得られます。
そのmodel.tfliteが、当方で生成したTFLiteファイルですのでお試しください。

もしくは、上記リンクからコンテナイメージをダウンロードし、そちらを
podman loadすることでもサンプルを手軽に動かすことが可能です。
詳しい手順は開発ガイドの以下をご参照ください。
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-base-os-dev…

その他の頂いた質問に関しましては、当方で確認でき次第回答いたします。

以上、よろしくお願いいたします。

tetsuo.yamashita

2022年2月25日 10時21分

> > また、よろしければ、このノートブックで最終的に得られる TFLite モデルのファイルを頂くことは可能でしょうか?
> > (Armadillo-IoT G4 でのサンプルアプリケーションの作成の試行自体は TFLite モデルのファイルがあれば進められそうなので)
>
> 取り急ぎ上記への回答のみお送りします。
> 開発ガイド内で使用しているファイルは以下からダウンロード出来ます。
> https://download.atmark-techno.com/armadillo-iot-g4/example/armadillo-b…
> 上記リンクのread_meter.tar.gzをダウンロード・展開することで、
> model.tfliteが得られます。
> そのmodel.tfliteが、当方で生成したTFLiteファイルですのでお試しください。
> もしくは、上記リンクからコンテナイメージをダウンロードし、そちらを
> podman loadすることでもサンプルを手軽に動かすことが可能です。
> 詳しい手順は開発ガイドの以下をご参照ください。
> https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-base-os-dev…
回答ありがとうございます。
こちらのファイルでサンプルアプリの試行を進めてみます。

> その他の頂いた質問に関しましては、当方で確認でき次第回答いたします。
かしこまりました。よろしくお願いいたします。

at_akihito.irie

2022年3月1日 10時20分

入江です。

> 1. ライブラリ群のインポート
> import cv2 のところでエラーになるようです。

当方でも同様のエラーが発生しました。
本Colab Notebook作成時には発生しなかったエラーですが、現在は発生するようです。

現在のところは、お客様が行った対処法で問題ないはずです。
Colab Notebookは今後修正します。

> 2. tfrecord 形式に変換 - 学習用データセットを tfrecord 化
> label_map.pbtxt が /02_annotaions/ に無い旨でエラーが出ます。

こちらについては、Armadillo Base OS開発ガイド内で作成する手順があります。

わかりにくいかもしれませんが、Colab Notebook内の「教師データを用意」セク
ションで、label_map.pbtxtを.xmlファイルと共に02_annotations/内に配置す
るよう記述しています。

そのため、お客様のご対応のとおり、事前作成済の label_map.pbtxtを
02_annotations/に置いていただく対処で問題ありません。

こちらについても02_annotationsに配置するファイルがわかりやすくなるよう
な修正を今後行います。

> label_map.pbtxt を配置後に実行してみると、次は ValueError が出てしまいます。

こちらについては、お客様がご用意された画像ファイルにjpegフォーマットで
ない画像が紛れ込んでいると起こるエラーです。

今一度、用意した画像データをご確認ください。

> 学習開始すると「DNN library is not found.」で止まってしまいます。

こちらについては、tensorflowのバージョンの差異によって発生する現象のよ
うです。Colab Notebook作成当初は2.7.0で動作しましたが、現在は2.8.0にて
動作するようです。

「TensorFlowのインストール」セクションにて、デフォルトではv2.7.0をイン
ストールしていますが、以下のように2.8.0に変更することで転移学習ができ
ることを確認しました。

!pip install -U --pre tensorflow=="2.7.0"

!pip install -U --pre tensorflow=="2.8.0"

こちらについても後日Colab Notebookを修正いたします。

ご迷惑おかけしまして申し訳ございません。
以上、よろしくお願いいたします。

tetsuo.yamashita

2022年3月14日 14時23分

回答ありがとうございます。遅くなりましたが、確認いたしました。
Google Colab 上では無いのですが、tensorflow=="2.8.0" で当該 notebook 上の操作を完遂し、tflite model を生成することができました。
venv + pip で構築した環境です。参考までに主なパッケージのバージョンを記載しておきます。

Python 3.8.10
opencv-python 4.5.5.64
tensorflow  2.8.0

at_akihito.irie

2022年3月15日 9時26分

入江です。

> Google Colab 上では無いのですが、tensorflow=="2.8.0" で当該 notebook 上の操作を完遂し、tflite model を生成することができました。
> venv + pip で構築した環境です。参考までに主なパッケージのバージョンを記載しておきます。

成功報告と動作環境まで共有していただき、ありがとうございます。
今後も何かございましたらご質問ください。

以上、よろしくお願いいたします。