iPhone
 Computer >> コンピューター >  >> スマートフォン >> iPhone

犬種を分類するための Turi Create を使用したコア ML モデルのトレーニング

このチュートリアルでは、カスタムの犬種分類 Core ML モデルをトレーニングして、iOS および macOS アプリで使用する方法を学習します。 Core ML モデルは、このチュートリアルの終わりまでに 5 つの異なる品種を区別できるようになります!

Apple が数年前に機械学習と人工知能のスタートアップである Turi を 2 億ドル以上で買収したことを思い出すかもしれません。高度な機械学習モデルを短時間で作成するための強力なツールを提供します。

このチュートリアルでは、Mac に Turi Create をインストールし、Python スクリプトを作成し、そのスクリプトを使用して、Xcode プロジェクトに直接ドラッグしてアプリにすばやく実装できる Core ML モデルをトレーニングする方法を学習します。

はじめに

実際の機械学習の部分に取り掛かる前に、まず Turi と Python のインストールを片付けましょう — もちろん、ハードウェアとソフトウェアが Turi の要件を満たしていることを確認する必要があります.

要件

インストールする他のソフトウェアと同様に、Turi Create にはいくつかの特定の要件があり、公式の GitHub ページで確認できます。

Turi Create のサポート:

  • macOS 10.12 以降
  • Linux (glibc 2.12 以降)
  • Windows 10 (WSL 経由)

Turi Create の要件:

  • Python 2.7、3.5、3.6
  • x86_64 アーキテクチャ
  • 4 GB 以上の RAM

肝心なのは、Mac が合理的である限りです。 new、Turi Create を実行できるはずです。必要に応じて、別のオペレーティング システムを使用することもできます。ただし、機能させるためにいくつかの手順を変更する必要がある場合があります。

インストール

特にコマンドラインに慣れている場合は、Turi Create のインストールは非常に簡単です。新しいバージョンの Python を使用することもできますが、このチュートリアルでは Python 2.7 を使用します。

MacOS Mojave では、デフォルトで Python 2.7 がインストールされているので、バージョンを確認するだけで済みます。 Mac で [アプリケーション]> [ユーティリティ]> [Te] を開きます rminal または単にキーボード ショーrtcut コマンドで検索します -スペース。

Mac 上の Python のバージョンを確認するには、次のように入力します。

$ python - version

これにより、Python のバージョンがわかります。コンソールは次のようになります。

犬種を分類するための Turi Create を使用したコア ML モデルのトレーニング
図 1: Python のバージョンを確認する

お使いのバージョンが Python 2.7 でない場合、または何らかの理由でコンピューターにインストールされていない場合は、このリンクからインストールする必要があります。あなたの出力が私のものと似ていれば、先に進む準備ができています。

注: 仮想マシンを使用して Turi Create をインストールすることを好む人もいます。これは、Apple が推奨しているためです。ただし、簡単にするために、直接インストールするだけです。

Turi Create をインストールするには、ターミナル ウィンドウに次のように入力します:

$ pip install turicreate

それで全部です! Turi Create が Mac に正常にインストールされ、使用する準備が整いました。分類、検出、回帰、およびその他のタイプのモデルを構築できるようになりました。

データセット

どの機械学習モデルでも、データセットが必要です。このチュートリアルでは、画像分類を必要とする単純な犬種分類モデルをトレーニングする方法を学習します。使用するデータは、スタンフォード大学の Dogs Dataset からのものです。

Turi が事前に分類された画像を認識できるようにするには、画像が何を表しているかに基づいて画像を整理する必要があります。たとえば、ゴールデン レトリバーのすべての画像は 1 つのフォルダーに格納され、ラブラドゥードルのすべての画像は別のフォルダーに格納されます。

簡単にするために、スタンフォード大学のデータセットにある数百の品種から 5 つの品種を使用しますが、必要な数の品種を使用できます。私は先に進んであなたのためにそれを整理し、そのためのリポジトリを作成しました.さらに犬種を追加する場合は、フォルダを追加して、好きな名前を付けてください。

フォルダ構造

ここまでで、データセットの配置方法がモデルを正しくトレーニングできるようにするために重要であることを理解したかもしれません。Turi Create が何がどこにあるのかを知る方法は他にありません。ちょっと時間を取って、自分を整理してください。

犬種を分類するための Turi Create を使用したコア ML モデルのトレーニング
図 2: フォルダー構造の開始

この階層図はすべてを説明するはずであり、このチュートリアルを続行する前に、この順序でフォルダーを取得する必要があります.名前を変更したり、配置を変えたりする場合は、これを必ずメモする必要があります。

分類器のトレーニング

セットアップが完了したら、このチュートリアルの内容に飛び込む準備が整いました。実際に分類器をトレーニングします。主に Python で作業しますが、これまで Python を使用したことがなくても大丈夫です。各ステップについて説明します。ご不明な点がございましたら、お気軽にコメントを残してください。

Python ファイル

まず、考えを書き留める場所が必要です (もちろん Python で)。 Atom などの Python をサポートするエディターまたは PyCharm などの統合開発環境が既にある場合は、それらを使用して dog_breeds.py という空のファイルを作成できます。 .

私のように、より開発者的なルートを好む場合は、ターミナルを使用して同じことを行うことができます。 ml_classifier 内にこのファイルを作成する必要があります images の横のフォルダー フォルダーを作成して、階層が次のようになるようにします:

犬種を分類するための Turi Create を使用したコア ML モデルのトレーニング
図 3: Python ファイルのフォルダー構造

新しいファイルを作成するには、まずターゲット ディレクトリに入ります:

$ cd ml_classifier

次に、dog_breeds.py という名前の新しいファイルを作成します。 .

$ touch dog_breeds.py

ほら!フォルダー、ファイル、および画像はすべて必要な場所にあり、次のステップに進む準備ができています. Xcode を使用してファイルを開くので、Xcode がインストールされ、最新の状態であることを確認してください。

データセット画像の読み込み

最後に、作成したばかりの Python ファイルを介して Turi に何をする必要があるかを伝え始めます。ファイルをダブルクリックすると、Xcode がインストールされていれば、デフォルトで開くはずです。そうでない場合は、別のエディターまたは Python IDE を使用することもできます。

1.フレームワークのインポート

import turicreate

ファイルの先頭で、Turi Create フレームワークをインポートする必要があります。必要に応じて、 as <your na を追加して参照用の名前を作成できます 私>。たとえば、it を参照したい場合 コード内の tc のように、次のように記述できます:

import turicreate as tc

これにより、tc と呼ぶことができます。 turicreate と書く代わりに .このチュートリアルでは、turicreate というフル バージョンを使用します。 あいまいさを減らします。

また、画像を分類するために、フォルダー名やその他の OS 関連のタスクを処理する必要があります。これには、os という別の Python ライブラリが必要です。 .インポートするには、以下を追加するだけです:

import os

2.画像の読み込み

data = turicreate.image_analysis.load_images("images/")

ここでは、データセット内のすべての画像を data という変数に保存しています。 . dog_breeds.py以来 ファイルは images と同じディレクトリにあります フォルダに “images/” を入れるだけです

3.ラベルの定義

Turi Create にすべての画像が揃ったので、フォルダー名をラベル名にリンクする必要があります。これらのラベル名は、iOS または MacOS アプリで使用されている場合に Core ML モデルで返されるものです。

data["label"] = data["path"].apply(lambda path: os.path.basename(os.path.dirname(path)))

これにより、すべてのフォルダー名を「ラベル」名にマップできます。これにより、Turi Create は、たとえば、「cocker_spaniel」フォルダーにあるすべての画像が実際にコッカー スパニエルであることを伝えます。

4. SFrame として保存

SFrame に慣れていない場合 、簡単に言えば、これはすべてのデータ (この場合は画像) とすべてのラベル (この場合は犬種) の辞書です。 SFrame を保存します このように:

data.save("dog_classifier.sframe")

これにより、ラベル付けされた画像を次のステップで使用できるように保存できます。これは、機械学習業界ではかなり標準的なデータ型です。

トレーニングとテスト

Turi Create がすべてのラベル付き画像を配置したら、ホーム ストレッチに入り、最後にモデルをトレーニングします。また、データを分割して、80% をトレーニングに使用し、20% をトレーニング後にモデルのテスト用に保存する必要があります。手動でテストする必要はありません。

1. SFrame を読み込んでいます

次に、前の手順で作成した SFrame をロードする必要があります。これは、後でテスト データとトレーニング データに分割するために使用するものです。

data = turicreate.SFrame("dog_classifier.sframe")

これは data を割り当てます 変数は SFrame 型になりました 前の手順で保存した SFrame に。次に、データをテスト データとトレーニング データに分割する必要があります。前述のように、テストとトレーニング データを 80:20 で分割します。

2.データの分割

データを分割する時が来ました。 SFrame コードの後に​​、次を追加します。

testing, training = data.random_split(0.8)

このコードは、データをランダムに 80 ~ 20 に分割し、それを 2 つの変数 testing に割り当てます。 および training 、 それぞれ。現在、Turi は手動でテスト イメージを提供してアプリを作成する必要なく、モデルを自動的にテストします。調整が必要な場合は、最初に完全に実装する必要はなく、代わりに Python で直接実行できます。ファイル。

3.トレーニング、テスト、エクスポート

あなたの努力がついに報われました!この Python コード行では、使用するアーキテクチャを指定しながら、Turi Create にモデルのトレーニングを指示するだけです。

classifier = turicreate.image_classifier.create(testing, target="label", model="resnet-50")

testing を使用するよう Turi に指示しているだけです。 データ (以前に指定された) を使用し、それらを使用して labels を予測します (以前のフォルダー構造に基づく)、 resnet-50 を使用している間 、最も正確な機械学習モデル アーキテクチャの 1 つです。

テスト データを使用してモデルが正確であることを確認するには、次を追加します。

testing = classifier.evaluate(training)print testing["accuracy"]

これは training を使用します 指定したデータを取得し、テスト後の結果を (ご想像のとおり) testing という変数に格納します .参考までに、精度を出力しますが、Turi Create の API で十分な時間があれば、他の情報も出力できます。

最後になりましたが、便利な名前を付けた後、このワンライナーでモデルをファイル システムに直接保存できます。

classifier.save("dog_classifier.model")classifier.export_coreml("dog_classifier.mlmodel")

もちろん、モデルを他の形式で保存することもできますが、この例では Core ML モデルとして保存しました。

実行と出力

そこにいるすべての iOS 開発者にとって — いいえ、これは自動的にコンパイルし続け、エラーを訴え続ける Xcode プロジェクトではありません。先ほど書いたコードを実行するには、ターミナル経由で実行する必要があります。

Python ファイルの実行

Python ファイルの実行は簡単です。正しいディレクトリにいることを確認してください。端末ウィンドウに次のように入力するだけです:

python dog_breeds.py

出力

数分間のトレーニングの後、あなたの images フォルダと dog_breeds.py ファイルには、SFrame、モデル フォルダ、および .mlmodel が付随します。 ファイル、これが Core ML モデルです!

また、ターミナル ウィンドウに次のような出力が表示されます。

犬種を分類するための Turi Create を使用したコア ML モデルのトレーニング
図 4: Python実行後の出力

これにより、トレーニングとトレーニングの精度、処理された画像の量、およびモデルを使用することなくモデルを分析するために使用できるその他の有用な情報に関する情報が得られます。

結論

私が作成を楽しんだのと同じくらい、このチュートリアルを読んで楽しんでくれたことを願っています!ここから先の手順をいくつか示します。 Core ML モデルを iOS アプリで使用する方法を学びたい場合は、別のチュートリアルをご覧ください:

Core ML で画像認識を開始
技術の進歩により、デバイスが内蔵カメラを使用して正確に識別できるようになりました... コード。
tutsplus.com

このチュートリアルでは、結果の dog_classifier.mlmodel を取得する方法を示します モデル化して、実際の iOS アプリに実装します。また、ライブ ビデオ フィードを解析し、画像分類のために個々のフレームを取得する方法についても説明します。

このチュートリアルに関して質問やコメントがある場合は、下のコメント セクションで遠慮なく質問してください。フィードバック、質問、またはこのチュートリアルの知識をどのように活用したかを常にお待ちしています。

仕事をサポートするのは簡単です!

その「拍手」ボタンを必ず押してください 何度でもこのチュートリアルを共有してください ソーシャル メディアで、Twitter でフォローしてください

ヴァルダン アグラワル (@vhanagwal) |ツイッター
Vardhan Agrawal (@vhanagwal) の最新ツイート。完全に独学の #ios 開発者、#インストラクター、そして人間…


  1. パスワードを使用してLinuxユーザーを作成する

    Linuxを作成する必要がある場合があります バッチモード(完全自動)のユーザーアカウントですが、多くの場合、初心者はパスワードの設定方法を尋ねます。 手動で入力せずに新しいユーザーの場合。天国のコマンドに感謝しますuseradd 入力パラメータとしてパスワードを取得できますが、暗号化する必要があります。 つまり、パスワードを使用してLinuxユーザーアカウントを作成するには、次のコマンドが役立ちます。 useradd -m -pencryptedPass ユーザー名 パスワードを暗号化する方法を少なくとも2つ知っています。 1つ目は、 perlを使用することです。 cry

  2. Excel でピボット テーブル データ モデルを作成する方法 (簡単な手順)

    これまでは、このサイトの 1 つのデータ テーブルから生成されたピボット テーブルのみに焦点を当ててきました。 データ モデル 機能により、ピボット チャートに追加の利点がもたらされました。 データ モデルを使用 、1 つのピボット テーブルで複数のデータ テーブルを使用できます。データを結合できるように、1 つ以上の「テーブル リレーションシップ」を作成する必要があります。データ モデルは、Excel 2013 で導入された新機能です。この記事では、Excel でピボット テーブル データ モデルを作成する 6 つの手順を紹介します。 Excel でピボット テーブル データ モデルを作成す