|

深層学習スタイルの転送 – チュートリアル


次のアンディ・ウォーホルになりたいと思っていたけれど、芸術的才能がなかったという人も、今では AI がそれを叶えてくれます。 スタイル転送ニューラル ネットワークを使用すると、画像に芸術的なスタイルを適用できます。 これらは、既存の画像分類ネットワークを取得し、それを伝達ネットワークのトレーニングの損失関数として使用し、変換出力をトレーニング画像および絵画などのサンプル スタイル画像と比較することによって作成されます。 直観的には、事前にトレーニングされたネットワークを使用して、ターゲット画像の意味論的特徴とスタイル画像のテクスチャを混合する新しいネットワークをトレーニングしています。

私たちは利用します
JC Johnson の高速ニューラル スタイルの実装 このプロセスでは、事前にトレーニングされた VGG16 ネットワークを使用してトレーニング中の損失を計算します。 Rescale で K80 GPU を使用して、変換ネットワークを効率的にトレーニングし、そのネットワークを新しい画像に適用します。

スタイル転送は 1 つのステップで行われます: 2) スタイル転送ネットワーク自体のトレーニング、および XNUMX) 転送モデルを新しい画像に適用します。 以下では、各ステップを実行するために再スケール ジョブを設定する方法を示します。

以下は、ジャクソン・ポロック、村上隆、香港の超高層ビルの写真など、さまざまなアートワークに合わせてスタイリングされた Rescale のチーム メンバー XNUMX 人です。 どれがどれであるか推測できるかどうかを確認してください。  
スタイル転送ブログ画像
スタイル転送は、新しい K80 GPU ハードウェアを備えた Rescale のクラウド コンピューティング プラットフォームで簡単に実現できます。 独自のニューラル ネットワークで芸術的にレンダリングされた画像を生成するためのサンプル ファイルとともにチュートリアルが含まれています。 このチュートリアルでは、クリント イーストウッド、ダース ベイダー、デヴィッド ボウイ、コーギーの肖像画にジャクソン ポロックの「オン アーチズ」のスタイルを適用できます。

Rescale でのスタイル転送の実行
次に、Rescale で独自のスタイルの転送ジョブを実行する方法を説明します。 Torch ネットワーク トレーニング ジョブを作成して実行します。
jcjohnson の fast-neural-style パッケージ。 このジョブを複製して、新しいスタイルをトレーニングしたり、新しい画像のスタイルを設定したりできます。 ここで Rescale でこのジョブのクローンを作成できます.
まず、次のファイルを入力としてアップロードします。

  • fast-neural-style.tar.gz: GitHub からダウンロードした jcjohnson のソフトウェアを含む tarball。
  • ココ2014.h5.gz: HDF2014 形式の Microsoft COCO 5 イメージインコンテキスト トレーニング データセット (このリポジトリは、実際には COCO 1 の元の画像の 10/2014 をランダムに選択したものです)。
  • クリント.jpg: 私たちがスタイリングするイメージ
  • ポロック.jpg: 画像のスタイルに使用される画像 (アートワーク)
  • vgg16.t7.gz: トーチの t16 形式でトレーニングされた VGG7 モデル

入力ファイル
次に、Torch を実行することと、どのスクリプトを実行するかを指定します。 まず train.lua を実行します。 VGG16 をベース モデル、COCO 2014 をトレーニング データセット、pollock.jpg をスタイルとして使用して、スタイル転送モデルを構築します。 スタイル転送モデル、model.t7 が作成されたら、fast_neural_style.lua を呼び出して clint.jpg のスタイルを設定します。 スタイル設定が完了したら、Rescale ストレージに保持する必要のないファイルをクリーンアップします。

スイッチ設定
ほぼ準備が整いました。 ここで、Obsidian コア タイプ、2 CPU コア (1 つの K80 GPU に相当) を選択し、[送信] をクリックします。
ハードウェアセットアップ
クラスターが開始され、入力がクラスターに同期されると、初期スタイル モデルのトレーニングが開始され、以下のようなビューが表示されます。 
スタイル転送ステータス1
トレーニングと画像のスタイリングが完了すると、結果ファイルが同期され、スタイル付けされたクリント イーストウッドを表示できるようになります。
クリントファイナル
また、 モデル.t7 出力ファイルに含まれています。 これは、さらなる画像のスタイルを設定するために使用する Pollock スタイルの転送ニューラル ネットワークです。 まず、このモデル ファイルを入力ファイルとして利用できるようにしましょう。
出力から入力へ
ここで、同じコード リポジトリ、新しいモデル ファイル、およびスタイルを設定するいくつかの画像を使用して新しいジョブを作成します。 ここで Rescale でこのジョブのクローンを作成できます.
スタイルのみ入力
今回は、画像をアーカイブとしてアップロードしました。アップロード後に解凍され、生成された入力ディレクトリで fast-neural-style を実行します。 より計算量の多いトレーニング プロセスを実行する必要がなくなったことに注目してください。
スタイルのみ-SW設定
トレーニングが完了すると、スタイル設定された画像が結果のoutput_imgsに表示されます。
出力4アップ
*このブログ投稿の技術的および指導的側面を設定してくれた Mark Whitney に特別に感謝します。 

著者

  • Adam McKenzie

    アダムは CTO として、HPC チームとカスタマー サクセス チームの管理を担当しています。 アダムはボーイングでキャリアをスタートし、787 年間 XNUMX に取り組み、主翼の設計、分析、最適化を行う構造およびソフトウェア エンジニアリング プロジェクトを管理しました。 アダムはオレゴン州立大学で機械工学の学士号を優秀な成績で取得しています。

類似の投稿