For AI agents: the complete documentation index is available at https://docs.dataplatform.ovh.net/ja/llms.txt, the full documentation bundle is available at https://docs.dataplatform.ovh.net/ja/llms-full.txt, and this page is available as Markdown at https://docs.dataplatform.ovh.net/ja/legacy/ml-pipelines-configure-training-custom-keras.md.
  • 🇯🇵 日本語
  • カスタム Keras スクリプトをインポートする

    Warning

    このページでは、OVHcloud Data Platformでは利用できないForePaaSレガシープラットフォームのサービスであるMachine Learning Managerについて説明しています。最新のドキュメントを参照してください。

    Kerasフレームワークを使用すると、Kerasライブラリと互換性のあるKerasシーケンシャルモデルを含むPythonの.pyファイルをアップロードできます。

    このフレームワークを選択すると、パイプラインの環境にデフォルトで以下のパッケージがインポートされます:

    カスタムスクリプトで使用するその他のライブラリは、DependenciesパネルPythonライブラリフィールドに指定する必要があります(最新版を使用しない場合はバージョンも指定してください)。

    machinelearning

    💡 必要なライブラリを一括で追加するには、requirements.txtファイルを読み込むことができます。詳細

    デフォルトでは、新しいパイプラインはPython 3.9.9を使用します。


    カスタムモデルをアップロードする

    カスタムモデルをアップロードするには、トレーニングスクリプトボックスに.pyファイルをドラッグするか、ボックスをクリックしてファイルエクスプローラーを開きます。

    machinelearning

    トレーニングジョブが実行される際に、この.pyファイルが実行されるファイルです。このファイルには、以下の2つの要件を満たす関数を含める必要があります:

    • 最初の引数としてeventを指定する必要があります
    • トレーニングデータセットに基づいてフィットされ、コンパイルされたシーケンシャルモデルを返す必要があります

    この関数の名前は、function nameボックスに記入する必要があります。

    machinelearning

    以下は、my_keras_model関数名として使用する基本的なカスタムKerasモデルのサンプルコードです:

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense
    from forepaas.ml import get_train_dataset
    
    
    def my_keras_model(event):
        # Retrieve train dataset.
        x, y = get_train_dataset()
    
        model = Sequential()
        model.add(Dense(60,input_dim=60,activation="relu"))
        model.add(Dense(1,activation="sigmoid"))
        
        model.compile(loss="binary_crossentropy",
         optimizer='rmsprop',
         metrics=["accuracy"])
    
        model.fit(x, y, batch_size=5, epochs=1, verbose=1)
        return model
    Warning

    プラットフォームがライブラリのインポートを処理する方法のため、keras``` library by ```tensorflowからのインポートにはプレフィックスを付ける必要があります。

    前のコードでは、トレーニングとチューニングのステップで行った設定のいずれも使用できませんが、ForePaaS SDKを使用して、モデルからパイプライン設定の他の部分に接続することができます。これにより、カスタムエスティメーターでForePaaSパイプラインが提供するすべての機能を使用できます。

    以下の設定を統合できます:

    !> トレーニングジョブ中にカスタム.pyスクリプトのみが実行されるため、Pythonスクリプトにこれらの設定を統合しなかった場合、パイプラインはインターフェースからの変更を無視します。


    非構造化データのトレーニングにKerasを使用する

    Machine Learning Managerは、Kerasモデルのトレーニングと予測において画像分類をサポートしています。

    データ準備

    非構造化データのトレーニングを有効にするには、まず画像を各クラスの名前が付いたフォルダにアップロードする必要があります。

    非構造化データの準備方法を学ぶ

    トレーニング

    トレーニング中、SDKメソッドget_train_datasetget_test_dataset構造化データと異なる動作をします。これらは、トレーニング画像へのパスと関連ラベル(.txtファイルとして)を含む2つの1列のDataFramesを返します。画像とラベルの列名はそれぞれinputoutputです。

    Warning

    ラベルは、バケット内の順序に基づいて整数として返されます。これは通常、アルファベット順です。

    そのため、画像とラベルを読み込み、処理する必要があります。以下のサンプルコードに示すようにです:

    def example_process_data():
        x_df, y_df = get_train_dataset()
        x, y = list(),list()
        for f, l in zip(x_df["input"], y_df["output"]):
            img = load_img(f, target_size=(28, 28))
            img = img_to_array(img) / 255
            x.append(img)
            with open(l, "r") as f:
                _label = f.read()
                y.append(int(_label))
    
        x = np.array(x)
        y = np.array(y)
        return x, y
      
    Warning

    非構造化データモデルが予測に使用される場合、実際の非構造化オブジェクト(画像など)を入力する必要があります。プラットフォームは自動的にそれらを「NumPy化」し、標準化/正規化を適用します。そのため、ニューラルネットワークスクリプトの入力層に入るデータも正規化する必要があります

    その後、eventをメソッドの唯一の引数として、Kerasモデルの残りの部分を追加できます:

    def my_model(event):
        # Retrieve train dataset from earlier defined function.
        x,y = example_process_data()
    
        model = Sequential()
        model.add(layers.Conv2D(32, (3, 3), activation='relu', 
         input_shape=(28, 28, 3)))
        model.add(Dense(1,activation="sigmoid"))
        
        model.compile(loss="binary_crossentropy", 
         optimizer=optimizers.RMSprop(lr=1e-5),
         metrics=["acc"])
    
        model.fit(x, y, batch_size=5, epochs=1, verbose=1)
        return model
      

    💡 カスタム.pyに複数のメソッドを含めることができます。UIを通じてfunction nameフィールドに指定したメソッドのみが実行されます。

    ニューラルネットワークのトレーニングをGPUを使用して加速できます。以下のリンクをクリックして詳細を確認してください。

    ML処理にGPUを使用する