概要
このコード・パターンでは、敵対的生成ネットワーク (GAN) モデルを定義して深層畳み込み GAN (DCGAN) モデルを実装する、シンプルな JSON 表現に目を向けます。この手法を使用すれば、コードを 1 行も作成せずに、ファッション画像を生成できます。
説明
分類タスクで使用する深層学習モデルのパフォーマンスは、トレーニング・データ内でどれだけたくさんの画像を使用できるかによって限りがあります。このことから、データを増やすために元のデータと同じように見えるデータを合成的に生成する、データ増補の手法が使用されることがよくあります。敵対的生成ネットワークは、このような合成した現実的画像を生成するために使用されている、最先端のモデルです。
Fashion MNIST は、10 クラスのラベルが関連付けられたデータセットであり、MNIST 数字分類用データセットの代わりとして簡単に使用できます。分類の精度を高めるために、多くの深層学習モデルが Fashion MNIST データセットを使用してトレーニングされています。トレーニング・データセットをさらに多くの画像で増補できれば、こうした分類子のパフォーマンスの向上につながります。深層畳み込み敵対的生成ネットワーク (DCGAN) モデルは、高品質の Fashion MNIST 画像を生成するための敵対的生成ネットワーク (GAN) です。
このオープンソース・プロジェクトには、カスタム GAN モデルを設計して実装するために使用できる以下のツールがバンドルされています。
- シンプルな JSON 構造を使用して GAN モデルのアーキテクチャーを指定するためのツール。このツールを使用すれば、コードを 1 行も作成することなくアーキテクチャーを指定できます。
- JSON 構造を使用して、さまざまな GAN コンポーネントのあらゆるパラメーターをカスタマイズするためのツール。
- 設計した GANモデルを任意のカスタム・データ (ファッション・データセットなど) に対してトレーニングし、新しい画像を生成するためのツール。
フロー
- ユーザーが、トレーニング対象の GAN モデルのアーキテクチャーを定義する JSON 構成ファイルを作成します。
- ユーザーが REST API 呼び出しによって、JSON 構成ファイルを IBM Cloud 内の Python-Flask サーバーに送信します。
- Flask API がリアルタイムで JSON 構成ファイルをデコードし、GAN モデル定義を作成します。
- 続いて Flask API が GAN モデル定義をエラー・フリーの PyTorch コードに変換します。
- PyTorch の GAN モデルが、指定された入力ファッション画像データセットを使用してトレーニングされます。
- トレーニング済みモデルが、入力データセットには含まれていない、同様のファッション画像を新しく生成します。
- 新しく生成された画像は、IBM Cloud 内の Python ランタイムから収集できます。
手順
このパターンの詳しい手順については、README ファイルを参照してください。手順の概要は以下のとおりです。
- IBM Cloud でアカウントを作成します。
- IBM Cloud CLI をインストールします。
- CLI を使用して IBM Cloud アカウントにログインします。
- IBM Cloud のターゲット組織とスペースをセットアップします。
- GitHub リポジトリーのクローンを作成します。
- GAN 構成ファイルを作成します。
- マニフェスト・ファイルと ProcFile を編集します。
- IBM Cloud 内の新しい Python ランタイムにアプリをプッシュします。