Skip to content

CoreMLモデルのファイルサイズを縮小する方法

CoreMLモデルを使用すると機械学習が簡単に出来るアプリが作れて便利ですよね。しかし気になるのはCoreMLモデルのファイルサイズです。100MBや200MBなどが当たり前のサイズになってきます。そのまま使用するとアプリのサイズもかなり大きなものになってしまい、アプリをダウンロードしてもらう障壁になってしまう可能性が高いです。今回はこの大きなCoreMLモデルのサイズを小さくする方法紹介します。

Core ML Appのサイズの縮小

Appleの公式で紹介されているCoreMLToolsによるニューラルネットワークの量子化を行うことで実現出来ます。

https://developer.apple.com/jp/documentation/coreml/reducing_the_size_of_your_core_ml_app/

Google Colabを使用する

GoogleのColabを使用することで、ブラウザ上でプログラムを実行して、CoreMLモデルのサイズ縮小を行うことが出来ます。Colabの使い方については割愛します。

GoogleDriveに対象のCoreMLモデルをアップロードする

まずはじめに、GoogleDriveに対象のCoreMLモデルをアップロードしておきます。ColabからこのアップロードされたCoreMLモデルを参照し、サイズを縮小した新たなCoreMLモデルを作成します。

ColabにPythonのコードを書いて実行する

Colab上で以下のプログラムを書いて、実行することでGoogleDriveにサイズを縮小した新たなCoreMLモデルが作成されます。あとは作成されたCoreMLモデルをダウンロードするだけです。

このサンプルでは、MyDriveにsample.mlmodelというCodeMLモデルをアップロードしてあり、new.mlmodelという縮小した新たなCoreMLモデルを作成しています。

import coremltools as ct
from coremltools.models.neural_network import quantization_utils
from google.colab import drive
drive.mount('/content/drive')

model_fp32 = ct.models.MLModel('/content/drive/MyDrive/sample.mlmodel')
model_fp16 = quantization_utils.quantize_weights(model_fp32, nbits=16)
ct.utils.save_spec(model_fp16, '/content/drive/MyDrive/new.mlmodel')

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です