予測料金バッチ予測バッチ予測では、予測回数(※1)と処理時間(※2)に対して料金が発生します。か月ごとに累積され、料金はセントの単位に四捨五入されます。ジョブごとに分単位で課金されます。分間分の料金が必ず発生します。億回に達した後から適用されます。他の機能はベータ版ですが、オンライン予測サービスはアルファ版機能として提供されます。オンライン予測がアルファ版の間は、この機能に限り無料でご利用いただけます。MLを動かしてみましょう。MLの操作は主にシェル上で行います。ローカル環境でも実行できますが、ローカル環境にソフトウェアをインストールする必要があります。Shellをお勧めします。MLを動かして行きましょう。実行の手順は以下の通りです。MLの実行に必要な環境を揃える最初に行うのは、プロジェクトの設定と必要なファイルのインストールです。Manager」を選択し、以下のAPIを有効にします。Shell上で環境設定を行います。Shellを開くには、コンソール画面右上のアイコンをクリックします。MLの実行に必要なツールをインストールします。パスに新たにインストールされたツールを追加します。PATH=${HOME}/.local/bin:${PATH}使用環境を確認するインストールが完了したら以下のコマンドを実行し、適切な環境が設定されているかを確認します。correctly.と表示されていれば正常にインストールされています。Cloudプロジェクト内のリソースにアクセスすることを許可します。ロケーションにアクセスする必要があります。ML用のバケットを追加しましょう。名前は何でもいいですが、今回はプロジェクト名に「-ml」を付加したバケット名を設定します。プロジェクト名を取得します。バケット名を作成します。新しいバケットを作成します。MLのジョブを実行するリージョンと同じリージョンを選択してください。マルチリージョン(usなど)ではなく、単一のリージョン(us-central1など)を選択してください。MLの準備は完了です。MLの準備が完了したら、機械学習モデルを作成するためのトレーニングを行います。トレーニングの実行手順は以下の通りです。スクリプトを送信するローカルでトレーニングするクラウド上でのトレーニングの前に、ローカルでトレーニングができるかを確認しておきます。通常はデータセットの小さなサンプルを用意してトレーニングします。今回は70,000枚ほどの小さなデータセットを使います。そのままのデータセットを使ってトレーニングします。※この作業は必須ではありませんので、スキップしても構いません。作業ディレクトリを変更します。過去のトレーニングで出力したファイルを削除します。ローカルでのトレーニングを行います。ジョブの送信を行います。ジョブの名前を設定します。(以下はジョブ名の一例です。プロジェクト名を取得します。Storageのバケットのアドレスを設定します。トレーニングデータを出力するパスを設定します。過去のトレーニングで出力したファイルを削除します。スクリプトをクラウドに送信します。--model_dir="${TRAIN_PATH}/model"ジョブの進行状況を確認し、終了するのを待ちます。表示され、ジョブ一覧に新しいジョブが追加されます。Storageを見ると、作成したバケットにジョブ名と同じ名前のディレクトリが追加されています。モデルを作成するモデルを作成する方法は2通りあります。モデル名を設定します。(以下はモデル名の一例です。MLモデルを作成します。予測用バージョンを作成します。v1GCPコンソールで作成するGCPのコンソール上でモデルとバージョンを作成することも可能です。[モデル]を選択します。[モデルを作成]をクリックします。モデル名を入力します。モデル一覧画面に戻り、新しいモデルの名前をクリックします。クリックし、名前とソースを入力します。クリックし、モデル一覧画面に戻ります。手書き数字を予測させる手書き数字の識別パターンを学習したモデルが作成されました。これで、手書きの数字画像がどの数字を表しているのかをモデルに予測させる準備ができました。予測には作成したモデルと、予測させる画像データを使います。予測用のデータはJSONファイルとして用意されています。中身を少し見てみましょう。data/predict_sample.tensor.jsonimage属性には、浮動値のリストとして手書き数字の画像データ(モデルに予測させるもの)が含まれています。ファイル中の画像のインデックスが含まれています。上記のデータを画像に変換したものがこちらです。これをモデルがどう識別するかを見ていきましょう。オンライン予測サービスに予測リクエストを送ります。モデル名・JSONファイル名を指定します。--json-instances=data/predict_sample.tensor.json予測完了後の画面がこちらです。上の手書き画像と比較してみましょう。最初の予測以外全て正解しています。10個中9個正解しているので、識別精度は9割といったところでしょうか。今回は70,000枚ほどの小さなデータセットでトレーニングしました。大きなデータセットでトレーニングすれば、精度が上がるかもしれません。最後に一言いかがでしたでしょうか。機会学習は奥が深く、なかなか始めるのは難しいと思いますが、この記事をきっかけに機械学習に興味を持ってもらえたら幸いです。このブログでは、機械学習に止まらずGCPに関する情報を発信してまいりますので、引き続きapps-gcpをよろしくお願いします。Ace)では、GAEの受託開発、クラウドや機械学習に関するお悩み・ご相談をお受けしておりますので、お気兼ねなくお問い合わせください。