使用TensorFlow Lite Model Maker生成图像分类模型

预备工作

首先安装程序运行必备的一些库。

!pip install tflite-model-maker
Requirement already satisfied: tflite-model-maker in d:\anaconda3\lib\site-packages (0.3.4)
Requirement already satisfied: pillow>=7.0.0 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (9.0.1)
Requirement already satisfied: matplotlib<3.5.0,>=3.0.3 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (3.4.3)
Requirement already satisfied: sentencepiece>=0.1.91 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (0.1.96)
Requirement already satisfied: tensorflowjs>=2.4.0 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (3.15.0)
Requirement already satisfied: numba==0.53 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (0.53.0)
Requirement already satisfied: librosa==0.8.1 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (0.8.1)
Requirement already satisfied: lxml>=4.6.1 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (4.6.3)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (1.25.11)
Requirement already satisfied: tensorflow-addons>=0.11.2 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (0.16.1)
Requirement already satisfied: neural-structured-learning>=1.3.1 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (1.3.1)
Requirement already satisfied: absl-py>=0.10.0 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (1.0.0)
Requirement already satisfied: six>=1.12.0 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (1.16.0)
Requirement already satisfied: fire>=0.3.1 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (0.4.0)
Requirement already satisfied: PyYAML>=5.1 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (6.0)
Requirement already satisfied: tensorflow-model-optimization>=0.5 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (0.7.2)
Requirement already satisfied: numpy>=1.17.3 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (1.20.3)
Requirement already satisfied: tensorflow-datasets>=2.1.0 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (4.5.2)
Requirement already satisfied: tf-models-official==2.3.0 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (2.3.0)
Requirement already satisfied: flatbuffers==1.12 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (1.12)
Requirement already satisfied: Cython>=0.29.13 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (0.29.24)
Requirement already satisfied: tensorflow>=2.6.0 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (2.8.0)
Requirement already satisfied: tensorflow-hub<0.13,>=0.7.0 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (0.12.0)
Requirement already satisfied: tflite-support>=0.3.1 in d:\anaconda3\lib\site-packages (from tflite-model-maker) (0.4.0)
Requirement already satisfied: soundfile>=0.10.2 in d:\anaconda3\lib\site-packages (from librosa==0.8.1->tflite-model-maker) (0.10.3.post1)
Requirement already satisfied: audioread>=2.0.0 in d:\anaconda3\lib\site-packages (from librosa==0.8.1->tflite-model-maker) (2.1.9)
Requirement already satisfied: decorator>=3.0.0 in d:\anaconda3\lib\site-packages (from librosa==0.8.1->tflite-model-maker) (5.1.1)
Requirement already satisfied: scipy>=1.0.0 in d:\anaconda3\lib\site-packages (from librosa==0.8.1->tflite-model-maker) (1.7.1)
Requirement already satisfied: packaging>=20.0 in d:\anaconda3\lib\site-packages (from librosa==0.8.1->tflite-model-maker) (21.3)
Requirement already satisfied: resampy>=0.2.2 in d:\anaconda3\lib\site-packages (from librosa==0.8.1->tflite-model-maker) (0.2.2)
Requirement already satisfied: pooch>=1.0 in d:\anaconda3\lib\site-packages (from librosa==0.8.1->tflite-model-maker) (1.6.0)
Requirement already satisfied: joblib>=0.14 in d:\anaconda3\lib\site-packages (from librosa==0.8.1->tflite-model-maker) (1.1.0)
Requirement already satisfied: scikit-learn!=0.19.0,>=0.14.0 in d:\anaconda3\lib\site-packages (from librosa==0.8.1->tflite-model-maker) (0.24.2)
Requirement already satisfied: setuptools in d:\anaconda3\lib\site-packages (from numba==0.53->tflite-model-maker) (61.2.0)
Requirement already satisfied: llvmlite<0.37,>=0.36.0rc1 in d:\anaconda3\lib\site-packages (from numba==0.53->tflite-model-maker) (0.36.0)
Requirement already satisfied: opencv-python-headless in d:\anaconda3\lib\site-packages (from tf-models-official==2.3.0->tflite-model-maker) (4.5.5.64)
Requirement already satisfied: google-cloud-bigquery>=0.31.0 in d:\anaconda3\lib\site-packages (from tf-models-official==2.3.0->tflite-model-maker) (3.1.0)
Requirement already satisfied: py-cpuinfo>=3.3.0 in d:\anaconda3\lib\site-packages (from tf-models-official==2.3.0->tflite-model-maker) (8.0.0)
Requirement already satisfied: tf-slim>=1.1.0 in d:\anaconda3\lib\site-packages (from tf-models-official==2.3.0->tflite-model-maker) (1.1.0)
Requirement already satisfied: psutil>=5.4.3 in d:\anaconda3\lib\site-packages (from tf-models-official==2.3.0->tflite-model-maker) (5.8.0)
Requirement already satisfied: pandas>=0.22.0 in d:\anaconda3\lib\site-packages (from tf-models-official==2.3.0->tflite-model-maker) (1.3.4)
Requirement already satisfied: gin-config in d:\anaconda3\lib\site-packages (from tf-models-official==2.3.0->tflite-model-maker) (0.5.0)
Requirement already satisfied: google-api-python-client>=1.6.7 in d:\anaconda3\lib\site-packages (from tf-models-official==2.3.0->tflite-model-maker) (2.47.0)
Requirement already satisfied: kaggle>=1.3.9 in d:\anaconda3\lib\site-packages (from tf-models-official==2.3.0->tflite-model-maker) (1.5.12)
Requirement already satisfied: dataclasses in d:\anaconda3\lib\site-packages (from tf-models-official==2.3.0->tflite-model-maker) (0.6)
Requirement already satisfied: termcolor in d:\anaconda3\lib\site-packages (from fire>=0.3.1->tflite-model-maker) (1.1.0)
Requirement already satisfied: httplib2<1dev,>=0.15.0 in d:\anaconda3\lib\site-packages (from google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (0.20.4)
Requirement already satisfied: google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0dev,>=1.31.5 in d:\anaconda3\lib\site-packages (from google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (2.7.2)
Requirement already satisfied: google-auth<3.0.0dev,>=1.16.0 in d:\anaconda3\lib\site-packages (from google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (2.6.5)
Requirement already satisfied: google-auth-httplib2>=0.1.0 in d:\anaconda3\lib\site-packages (from google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (0.1.0)
Requirement already satisfied: uritemplate<5,>=3.0.1 in d:\anaconda3\lib\site-packages (from google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (4.1.1)
Requirement already satisfied: googleapis-common-protos<2.0dev,>=1.52.0 in d:\anaconda3\lib\site-packages (from google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0dev,>=1.31.5->google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (1.56.0)
Requirement already satisfied: requests<3.0.0dev,>=2.18.0 in d:\anaconda3\lib\site-packages (from google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0dev,>=1.31.5->google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (2.26.0)
Requirement already satisfied: protobuf>=3.12.0 in d:\anaconda3\lib\site-packages (from google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0dev,>=1.31.5->google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (3.20.0)
Requirement already satisfied: pyasn1-modules>=0.2.1 in d:\anaconda3\lib\site-packages (from google-auth<3.0.0dev,>=1.16.0->google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (0.2.8)
Requirement already satisfied: cachetools<6.0,>=2.0.0 in d:\anaconda3\lib\site-packages (from google-auth<3.0.0dev,>=1.16.0->google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (5.0.0)
Requirement already satisfied: rsa<5,>=3.1.4 in d:\anaconda3\lib\site-packages (from google-auth<3.0.0dev,>=1.16.0->google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (4.8)
Requirement already satisfied: grpcio<2.0dev,>=1.38.1 in d:\anaconda3\lib\site-packages (from google-cloud-bigquery>=0.31.0->tf-models-official==2.3.0->tflite-model-maker) (1.44.0)
Requirement already satisfied: python-dateutil<3.0dev,>=2.7.2 in d:\anaconda3\lib\site-packages (from google-cloud-bigquery>=0.31.0->tf-models-official==2.3.0->tflite-model-maker) (2.8.2)
Requirement already satisfied: proto-plus>=1.15.0 in d:\anaconda3\lib\site-packages (from google-cloud-bigquery>=0.31.0->tf-models-official==2.3.0->tflite-model-maker) (1.20.3)
Requirement already satisfied: google-cloud-bigquery-storage<3.0.0dev,>=2.0.0 in d:\anaconda3\lib\site-packages (from google-cloud-bigquery>=0.31.0->tf-models-official==2.3.0->tflite-model-maker) (2.13.1)
Requirement already satisfied: google-cloud-core<3.0.0dev,>=1.4.1 in d:\anaconda3\lib\site-packages (from google-cloud-bigquery>=0.31.0->tf-models-official==2.3.0->tflite-model-maker) (2.3.0)
Requirement already satisfied: google-resumable-media<3.0dev,>=0.6.0 in d:\anaconda3\lib\site-packages (from google-cloud-bigquery>=0.31.0->tf-models-official==2.3.0->tflite-model-maker) (2.3.2)
Requirement already satisfied: pyarrow<9.0dev,>=3.0.0 in d:\anaconda3\lib\site-packages (from google-cloud-bigquery>=0.31.0->tf-models-official==2.3.0->tflite-model-maker) (8.0.0)
Requirement already satisfied: grpcio-status<2.0dev,>=1.33.2 in d:\anaconda3\lib\site-packages (from google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0dev,>=1.31.5->google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (1.44.0)
Requirement already satisfied: google-crc32c<2.0dev,>=1.0 in d:\anaconda3\lib\site-packages (from google-resumable-media<3.0dev,>=0.6.0->google-cloud-bigquery>=0.31.0->tf-models-official==2.3.0->tflite-model-maker) (1.3.0)
Requirement already satisfied: pyparsing!=3.0.0,!=3.0.1,!=3.0.2,!=3.0.3,<4,>=2.4.2 in d:\anaconda3\lib\site-packages (from httplib2<1dev,>=0.15.0->google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (3.0.4)
Requirement already satisfied: python-slugify in d:\anaconda3\lib\site-packages (from kaggle>=1.3.9->tf-models-official==2.3.0->tflite-model-maker) (5.0.2)
Requirement already satisfied: certifi in d:\anaconda3\lib\site-packages (from kaggle>=1.3.9->tf-models-official==2.3.0->tflite-model-maker) (2021.10.8)
Requirement already satisfied: tqdm in d:\anaconda3\lib\site-packages (from kaggle>=1.3.9->tf-models-official==2.3.0->tflite-model-maker) (4.64.0)
Requirement already satisfied: cycler>=0.10 in d:\anaconda3\lib\site-packages (from matplotlib<3.5.0,>=3.0.3->tflite-model-maker) (0.10.0)
Requirement already satisfied: kiwisolver>=1.0.1 in d:\anaconda3\lib\site-packages (from matplotlib<3.5.0,>=3.0.3->tflite-model-maker) (1.3.1)
Requirement already satisfied: attrs in d:\anaconda3\lib\site-packages (from neural-structured-learning>=1.3.1->tflite-model-maker) (21.4.0)
Requirement already satisfied: pytz>=2017.3 in d:\anaconda3\lib\site-packages (from pandas>=0.22.0->tf-models-official==2.3.0->tflite-model-maker) (2021.3)
Requirement already satisfied: appdirs>=1.3.0 in d:\anaconda3\lib\site-packages (from pooch>=1.0->librosa==0.8.1->tflite-model-maker) (1.4.4)
Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in d:\anaconda3\lib\site-packages (from pyasn1-modules>=0.2.1->google-auth<3.0.0dev,>=1.16.0->google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (0.4.8)
Requirement already satisfied: idna<4,>=2.5 in d:\anaconda3\lib\site-packages (from requests<3.0.0dev,>=2.18.0->google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0dev,>=1.31.5->google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (3.3)
Requirement already satisfied: charset-normalizer~=2.0.0 in d:\anaconda3\lib\site-packages (from requests<3.0.0dev,>=2.18.0->google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0dev,>=1.31.5->google-api-python-client>=1.6.7->tf-models-official==2.3.0->tflite-model-maker) (2.0.4)
Requirement already satisfied: threadpoolctl>=2.0.0 in d:\anaconda3\lib\site-packages (from scikit-learn!=0.19.0,>=0.14.0->librosa==0.8.1->tflite-model-maker) (2.2.0)
Requirement already satisfied: cffi>=1.0 in d:\anaconda3\lib\site-packages (from soundfile>=0.10.2->librosa==0.8.1->tflite-model-maker) (1.15.0)
Requirement already satisfied: pycparser in d:\anaconda3\lib\site-packages (from cffi>=1.0->soundfile>=0.10.2->librosa==0.8.1->tflite-model-maker) (2.21)
Requirement already satisfied: libclang>=9.0.1 in d:\anaconda3\lib\site-packages (from tensorflow>=2.6.0->tflite-model-maker) (14.0.1)
Requirement already satisfied: wrapt>=1.11.0 in d:\anaconda3\lib\site-packages (from tensorflow>=2.6.0->tflite-model-maker) (1.12.1)
Requirement already satisfied: opt-einsum>=2.3.2 in d:\anaconda3\lib\site-packages (from tensorflow>=2.6.0->tflite-model-maker) (3.3.0)
Requirement already satisfied: tf-estimator-nightly==2.8.0.dev2021122109 in d:\anaconda3\lib\site-packages (from tensorflow>=2.6.0->tflite-model-maker) (2.8.0.dev2021122109)
Requirement already satisfied: tensorboard<2.9,>=2.8 in d:\anaconda3\lib\site-packages (from tensorflow>=2.6.0->tflite-model-maker) (2.8.0)
Requirement already satisfied: google-pasta>=0.1.1 in d:\anaconda3\lib\site-packages (from tensorflow>=2.6.0->tflite-model-maker) (0.2.0)
Requirement already satisfied: typing-extensions>=3.6.6 in d:\anaconda3\lib\site-packages (from tensorflow>=2.6.0->tflite-model-maker) (4.1.1)
Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in d:\anaconda3\lib\site-packages (from tensorflow>=2.6.0->tflite-model-maker) (0.25.0)
Requirement already satisfied: astunparse>=1.6.0 in d:\anaconda3\lib\site-packages (from tensorflow>=2.6.0->tflite-model-maker) (1.6.3)
Requirement already satisfied: gast>=0.2.1 in d:\anaconda3\lib\site-packages (from tensorflow>=2.6.0->tflite-model-maker) (0.5.3)
Requirement already satisfied: h5py>=2.9.0 in d:\anaconda3\lib\site-packages (from tensorflow>=2.6.0->tflite-model-maker) (3.2.1)
Requirement already satisfied: keras-preprocessing>=1.1.1 in d:\anaconda3\lib\site-packages (from tensorflow>=2.6.0->tflite-model-maker) (1.1.2)
Requirement already satisfied: keras<2.9,>=2.8.0rc0 in d:\anaconda3\lib\site-packages (from tensorflow>=2.6.0->tflite-model-maker) (2.8.0)
Requirement already satisfied: wheel<1.0,>=0.23.0 in d:\anaconda3\lib\site-packages (from astunparse>=1.6.0->tensorflow>=2.6.0->tflite-model-maker) (0.37.1)
Requirement already satisfied: markdown>=2.6.8 in d:\anaconda3\lib\site-packages (from tensorboard<2.9,>=2.8->tensorflow>=2.6.0->tflite-model-maker) (3.3.6)
Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in d:\anaconda3\lib\site-packages (from tensorboard<2.9,>=2.8->tensorflow>=2.6.0->tflite-model-maker) (1.8.1)
Requirement already satisfied: werkzeug>=0.11.15 in d:\anaconda3\lib\site-packages (from tensorboard<2.9,>=2.8->tensorflow>=2.6.0->tflite-model-maker) (2.0.2)
Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in d:\anaconda3\lib\site-packages (from tensorboard<2.9,>=2.8->tensorflow>=2.6.0->tflite-model-maker) (0.4.6)
Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in d:\anaconda3\lib\site-packages (from tensorboard<2.9,>=2.8->tensorflow>=2.6.0->tflite-model-maker) (0.6.1)
Requirement already satisfied: requests-oauthlib>=0.7.0 in d:\anaconda3\lib\site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.9,>=2.8->tensorflow>=2.6.0->tflite-model-maker) (1.3.1)
Requirement already satisfied: importlib-metadata>=4.4 in d:\anaconda3\lib\site-packages (from markdown>=2.6.8->tensorboard<2.9,>=2.8->tensorflow>=2.6.0->tflite-model-maker) (4.11.3)
Requirement already satisfied: zipp>=0.5 in d:\anaconda3\lib\site-packages (from importlib-metadata>=4.4->markdown>=2.6.8->tensorboard<2.9,>=2.8->tensorflow>=2.6.0->tflite-model-maker) (3.7.0)
Requirement already satisfied: oauthlib>=3.0.0 in d:\anaconda3\lib\site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.9,>=2.8->tensorflow>=2.6.0->tflite-model-maker) (3.2.0)
Requirement already satisfied: typeguard>=2.7 in d:\anaconda3\lib\site-packages (from tensorflow-addons>=0.11.2->tflite-model-maker) (2.13.3)
Requirement already satisfied: dill in d:\anaconda3\lib\site-packages (from tensorflow-datasets>=2.1.0->tflite-model-maker) (0.3.4)
Requirement already satisfied: promise in d:\anaconda3\lib\site-packages (from tensorflow-datasets>=2.1.0->tflite-model-maker) (2.3)
Requirement already satisfied: tensorflow-metadata in d:\anaconda3\lib\site-packages (from tensorflow-datasets>=2.1.0->tflite-model-maker) (1.8.0)
Requirement already satisfied: dm-tree~=0.1.1 in d:\anaconda3\lib\site-packages (from tensorflow-model-optimization>=0.5->tflite-model-maker) (0.1.7)
Requirement already satisfied: sounddevice>=0.4.4 in d:\anaconda3\lib\site-packages (from tflite-support>=0.3.1->tflite-model-maker) (0.4.4)
Requirement already satisfied: pybind11>=2.6.0 in d:\anaconda3\lib\site-packages (from tflite-support>=0.3.1->tflite-model-maker) (2.9.2)
Requirement already satisfied: text-unidecode>=1.3 in d:\anaconda3\lib\site-packages (from python-slugify->kaggle>=1.3.9->tf-models-official==2.3.0->tflite-model-maker) (1.3)
Requirement already satisfied: colorama in d:\anaconda3\lib\site-packages (from tqdm->kaggle>=1.3.9->tf-models-official==2.3.0->tflite-model-maker) (0.4.4)

这里pip之前添加"!"符号是告诉notebook把pip安装指令当做shell指令执行(实际上其实不加!也能执行)。安装的时候遇到ERROR: Cannot uninstall 'llvmlite'.的问题。首先卸载llvmlite包,这里利用Anaconda Navigator中Environments组件管理和卸载相关的Package。
解决之后,再次提示conda-repo-cli 1.0.4anaconda-project 0.10.1没有安装。
分别使用pip install conda-repo-cli==1.0.4pip install anaconda-project==0.10.1安装相应的库。注意,由于Anaconda版本不同,安装tflite model maker的环境不同,需根据实际情况自行解决安装过程中遇到的问题。

!pip install conda-repo-cli==1.0.4
Requirement already satisfied: conda-repo-cli==1.0.4 in d:\anaconda3\lib\site-packages (1.0.4)
Requirement already satisfied: nbformat>=4.4.0 in d:\anaconda3\lib\site-packages (from conda-repo-cli==1.0.4) (5.3.0)
Requirement already satisfied: pytz in d:\anaconda3\lib\site-packages (from conda-repo-cli==1.0.4) (2021.3)
Requirement already satisfied: python-dateutil>=2.6.1 in d:\anaconda3\lib\site-packages (from conda-repo-cli==1.0.4) (2.8.2)
Requirement already satisfied: clyent>=1.2.0 in d:\anaconda3\lib\site-packages (from conda-repo-cli==1.0.4) (1.2.2)
Requirement already satisfied: six in d:\anaconda3\lib\site-packages (from conda-repo-cli==1.0.4) (1.16.0)
Requirement already satisfied: pathlib in d:\anaconda3\lib\site-packages (from conda-repo-cli==1.0.4) (1.0.1)
Requirement already satisfied: PyYAML>=3.12 in d:\anaconda3\lib\site-packages (from conda-repo-cli==1.0.4) (6.0)
Requirement already satisfied: requests>=2.9.1 in d:\anaconda3\lib\site-packages (from conda-repo-cli==1.0.4) (2.26.0)
Requirement already satisfied: setuptools in d:\anaconda3\lib\site-packages (from conda-repo-cli==1.0.4) (61.2.0)
Requirement already satisfied: jupyter-core in d:\anaconda3\lib\site-packages (from nbformat>=4.4.0->conda-repo-cli==1.0.4) (4.10.0)
Requirement already satisfied: fastjsonschema in d:\anaconda3\lib\site-packages (from nbformat>=4.4.0->conda-repo-cli==1.0.4) (2.15.1)
Requirement already satisfied: traitlets>=4.1 in d:\anaconda3\lib\site-packages (from nbformat>=4.4.0->conda-repo-cli==1.0.4) (5.1.1)
Requirement already satisfied: jsonschema>=2.6 in d:\anaconda3\lib\site-packages (from nbformat>=4.4.0->conda-repo-cli==1.0.4) (4.4.0)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in d:\anaconda3\lib\site-packages (from jsonschema>=2.6->nbformat>=4.4.0->conda-repo-cli==1.0.4) (0.18.0)
Requirement already satisfied: attrs>=17.4.0 in d:\anaconda3\lib\site-packages (from jsonschema>=2.6->nbformat>=4.4.0->conda-repo-cli==1.0.4) (21.4.0)
Requirement already satisfied: charset-normalizer~=2.0.0 in d:\anaconda3\lib\site-packages (from requests>=2.9.1->conda-repo-cli==1.0.4) (2.0.4)
Requirement already satisfied: idna<4,>=2.5 in d:\anaconda3\lib\site-packages (from requests>=2.9.1->conda-repo-cli==1.0.4) (3.3)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in d:\anaconda3\lib\site-packages (from requests>=2.9.1->conda-repo-cli==1.0.4) (1.25.11)
Requirement already satisfied: certifi>=2017.4.17 in d:\anaconda3\lib\site-packages (from requests>=2.9.1->conda-repo-cli==1.0.4) (2021.10.8)
Requirement already satisfied: pywin32>=1.0 in d:\anaconda3\lib\site-packages (from jupyter-core->nbformat>=4.4.0->conda-repo-cli==1.0.4) (302)
!pip install anaconda-project==0.10.1
Requirement already satisfied: anaconda-project==0.10.1 in d:\anaconda3\lib\site-packages (0.10.1)
Requirement already satisfied: jinja2 in d:\anaconda3\lib\site-packages (from anaconda-project==0.10.1) (2.11.3)
Requirement already satisfied: anaconda-client in d:\anaconda3\lib\site-packages (from anaconda-project==0.10.1) (1.9.0)
Requirement already satisfied: ruamel-yaml in d:\anaconda3\lib\site-packages (from anaconda-project==0.10.1) (0.17.21)
Requirement already satisfied: conda-pack in d:\anaconda3\lib\site-packages (from anaconda-project==0.10.1) (0.6.0)
Requirement already satisfied: requests in d:\anaconda3\lib\site-packages (from anaconda-project==0.10.1) (2.26.0)
Requirement already satisfied: tornado>=4.2 in d:\anaconda3\lib\site-packages (from anaconda-project==0.10.1) (6.1)
Requirement already satisfied: PyYAML>=3.12 in d:\anaconda3\lib\site-packages (from anaconda-client->anaconda-project==0.10.1) (6.0)
Requirement already satisfied: pytz in d:\anaconda3\lib\site-packages (from anaconda-client->anaconda-project==0.10.1) (2021.3)
Requirement already satisfied: setuptools in d:\anaconda3\lib\site-packages (from anaconda-client->anaconda-project==0.10.1) (61.2.0)
Requirement already satisfied: python-dateutil>=2.6.1 in d:\anaconda3\lib\site-packages (from anaconda-client->anaconda-project==0.10.1) (2.8.2)
Requirement already satisfied: clyent>=1.2.0 in d:\anaconda3\lib\site-packages (from anaconda-client->anaconda-project==0.10.1) (1.2.2)
Requirement already satisfied: nbformat>=4.4.0 in d:\anaconda3\lib\site-packages (from anaconda-client->anaconda-project==0.10.1) (5.3.0)
Requirement already satisfied: six in d:\anaconda3\lib\site-packages (from anaconda-client->anaconda-project==0.10.1) (1.16.0)
Requirement already satisfied: fastjsonschema in d:\anaconda3\lib\site-packages (from nbformat>=4.4.0->anaconda-client->anaconda-project==0.10.1) (2.15.1)
Requirement already satisfied: jsonschema>=2.6 in d:\anaconda3\lib\site-packages (from nbformat>=4.4.0->anaconda-client->anaconda-project==0.10.1) (4.4.0)
Requirement already satisfied: jupyter-core in d:\anaconda3\lib\site-packages (from nbformat>=4.4.0->anaconda-client->anaconda-project==0.10.1) (4.10.0)
Requirement already satisfied: traitlets>=4.1 in d:\anaconda3\lib\site-packages (from nbformat>=4.4.0->anaconda-client->anaconda-project==0.10.1) (5.1.1)
Requirement already satisfied: attrs>=17.4.0 in d:\anaconda3\lib\site-packages (from jsonschema>=2.6->nbformat>=4.4.0->anaconda-client->anaconda-project==0.10.1) (21.4.0)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in d:\anaconda3\lib\site-packages (from jsonschema>=2.6->nbformat>=4.4.0->anaconda-client->anaconda-project==0.10.1) (0.18.0)
Requirement already satisfied: charset-normalizer~=2.0.0 in d:\anaconda3\lib\site-packages (from requests->anaconda-project==0.10.1) (2.0.4)
Requirement already satisfied: idna<4,>=2.5 in d:\anaconda3\lib\site-packages (from requests->anaconda-project==0.10.1) (3.3)
Requirement already satisfied: certifi>=2017.4.17 in d:\anaconda3\lib\site-packages (from requests->anaconda-project==0.10.1) (2021.10.8)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in d:\anaconda3\lib\site-packages (from requests->anaconda-project==0.10.1) (1.25.11)
Requirement already satisfied: MarkupSafe>=0.23 in d:\anaconda3\lib\site-packages (from jinja2->anaconda-project==0.10.1) (1.1.1)
Requirement already satisfied: pywin32>=1.0 in d:\anaconda3\lib\site-packages (from jupyter-core->nbformat>=4.4.0->anaconda-client->anaconda-project==0.10.1) (302)
Requirement already satisfied: ruamel.yaml.clib>=0.2.6 in d:\anaconda3\lib\site-packages (from ruamel-yaml->anaconda-project==0.10.1) (0.2.6)

接下来,导入相关的库。

import os

import numpy as np

import tensorflow as tf
assert tf.__version__.startswith('2')

from tflite_model_maker import model_spec
from tflite_model_maker import image_classifier
from tflite_model_maker.config import ExportFormat
from tflite_model_maker.config import QuantizationConfig
from tflite_model_maker.image_classifier import DataLoader

import matplotlib.pyplot as plt

模型训练

获取数据

本实验先从较小的数据集开始训练,当然越多的数据,模型精度更高。

image_path = tf.keras.utils.get_file(
      'flower_photos.tgz',
      'https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz',
      extract=True)
image_path = os.path.join(os.path.dirname(image_path), 'flower_photos')

这里从storage.googleapis.com中下载了本实验所需要的数据集。image_path可以定制,默认是在用户目录的.keras\datasets中。

运行示例

一共需4步完成。
第一步:加载数据集,并将数据集分为训练数据和测试数据。

data = DataLoader.from_folder(image_path)
train_data, test_data = data.split(0.9)
INFO:tensorflow:Load image with size: 3670, num_label: 5, labels: daisy, dandelion, roses, sunflowers, tulips.

第二步:训练Tensorflow模型

model = image_classifier.create(train_data)
INFO:tensorflow:Retraining the models...
Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 hub_keras_layer_v1v2 (HubKe  (None, 1280)             3413024   
 rasLayerV1V2)                                                   
                                                                 
 dropout (Dropout)           (None, 1280)              0         
                                                                 
 dense (Dense)               (None, 5)                 6405      
                                                                 
=================================================================
Total params: 3,419,429
Trainable params: 6,405
Non-trainable params: 3,413,024
_________________________________________________________________
None
Epoch 1/5


d:\anaconda3\lib\site-packages\keras\optimizer_v2\gradient_descent.py:102: UserWarning: The `lr` argument is deprecated, use `learning_rate` instead.
  super(SGD, self).__init__(name, **kwargs)


103/103 [==============================] - 76s 719ms/step - loss: 0.8647 - accuracy: 0.7782
Epoch 2/5
103/103 [==============================] - 97s 943ms/step - loss: 0.6525 - accuracy: 0.8935
Epoch 3/5
103/103 [==============================] - 92s 896ms/step - loss: 0.6223 - accuracy: 0.9099
Epoch 4/5
103/103 [==============================] - 95s 921ms/step - loss: 0.6021 - accuracy: 0.9226
Epoch 5/5
103/103 [==============================] - 100s 970ms/step - loss: 0.5903 - accuracy: 0.9336

第三步:评估模型

loss, accuracy = model.evaluate(test_data)
12/12 [==============================] - 12s 749ms/step - loss: 0.6107 - accuracy: 0.9155

第四步,导出Tensorflow Lite模型

model.export(export_dir='.')
INFO:tensorflow:Assets written to: C:\Users\ll\AppData\Local\Temp\tmpqryprhqv\assets


INFO:tensorflow:Assets written to: C:\Users\ll\AppData\Local\Temp\tmpqryprhqv\assets
d:\anaconda3\lib\site-packages\tensorflow\lite\python\convert.py:746: UserWarning: Statistics for quantized inputs were expected, but not specified; continuing anyway.
  warnings.warn("Statistics for quantized inputs were expected, but not "


INFO:tensorflow:Label file is inside the TFLite model with metadata.


INFO:tensorflow:Label file is inside the TFLite model with metadata.


INFO:tensorflow:Saving labels in C:\Users\ll\AppData\Local\Temp\tmpjyprgcyp\labels.txt


INFO:tensorflow:Saving labels in C:\Users\ll\AppData\Local\Temp\tmpjyprgcyp\labels.txt


INFO:tensorflow:TensorFlow Lite model exported successfully: .\model.tflite


INFO:tensorflow:TensorFlow Lite model exported successfully: .\model.tflite

这里导出的Tensorflow Lite模型包含了元数据(metadata),其能够提供标准的模型描述。导出的模型存放在Jupyter Notebook当前的工作目录中。

参考文献

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用TensorFlow Lite可以快速构建移动端声音分类应用。TensorFlow Lite是一个针对移动设备和嵌入式设备优化的轻量级机器学习框架,它具有高效的推理性能和较小的模型尺寸。 首先,我们需要准备声音分类的训练数据集。可以选择一个合适的公开数据集,例如UrbanSound8K,其中包含了来自不同环境的各种声音样本。然后,我们使用TensorFlow构建和训练一个声音分类模型,可以选择常见的模型架构,如卷积神经网络。 接下来,我们使用TensorFlow提供的工具将训练好的模型转换为TensorFlow Lite模型格式。这可以通过使用TensorFlow的Converter API实现,其中应用了优化技术来减小模型的尺寸和优化推理性能。 一旦我们获得了TensorFlow Lite模型,我们可以将其集成到移动端应用程序中。可以使用Java或Kotlin编写Android应用,或使用Swift编写iOS应用。在应用程序中,我们使用TensorFlow Lite解析器来加载模型并进行声音分类。该解析器提供了简单的API来输入音频数据并获得分类结果。 最后,为了提高移动端应用的性能,可以考虑对模型进行量化(quantization),将浮点数模型转换为整数模型,以减小内存占用和加速推理速度。TensorFlow Lite还提供了一些优化技术,如模型矩阵压缩和模型分割,进一步提升了性能。 总之,使用TensorFlow Lite可以快速构建高性能、低资源占用的移动端声音分类应用。通过合理选择数据集、训练模型,并应用TensorFlow Lite的优化技术,我们可以在移动设备上实现实时声音分类

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值