SAS Viya:ディープラーニング&画像処理用Python API向けパッケージ:DLPy

3

SASでは、従来からSAS Viyaの機能をPythonなど各種汎用プログラミング言語から利用するためのパッケージであるSWATを提供していました。

これに加え、よりハイレベルなPython向けAPIパッケージであるDLPyの提供も開始され、PythonからViyaの機能をより効率的に活用することが可能となっています。

※DLPyの詳細に関しては以下サイトをご覧ください。

https://github.com/sassoftware/python-dlpy

  1. DLPyとは
  2. DLPyの機能(一部抜粋)

1.DLPyとは

DLPyは、Viya3.3以降のディープラーニングと画像処理(image action set)のために作成された、Python API向けハイレベルパッケージです。DLPyではKerasに似たAPIを提供し、ディープラーニングと画像処理のコーディングの効率化が図られています。既存のKerasのコードをほんの少し書き換えるだけで、SAS Viya上でその処理を実行させることも可能になります。

例えば、以下はCNNの層の定義例です。Kerasに酷似していることがわかります。

DLPyでサポートしているレイヤは、InputLayer, Conv2d, Pooling, Dense, Recurrent, BN, Res, Proj, OutputLayer、です。

以下は学習時の記述例です。

2.DLPyの機能(一部抜粋)

複数のイルカとキリンの画像をCNNによって学習し、そのモデルにテスト画像を当てはめて予測する内容を例に、DLPyの機能(一部抜粋)を紹介します。

2-1.メジャーなディープラーニング・ネットワークの実装

DLPyでは、事前に構築された以下のディープラーニングモデルを提供しています。

  • VGG11/13/16/19、 ResNet34/50/101/152、 wide_resnet、 dense_net

また、以下のモデルでは、ImageNetのデータを使用した事前学習済みのweightsも提供(このweightsは転移学習によって独自のタスクに利用可能)しています。

  • VGG16、VGG19、ResNet50、ResNet101、ResNet152

以下は、ResNet50の事前学習済みのweightsを転移している例です。

2-2.CNNの判断根拠情報

heat_map_analysis()メソッドを使用し、画像の何処に着目したのかをカラフルなヒートマップとして出力し、確認することができます。

また、get_feature_maps()メソッドを使用し、CNNの各層の特徴マップ(feature map)を取得し、feature_maps.display()メソッドを使用し、取得されたfeature mapの層を指定して表示し、確認することもできます。

以下は、レイヤー1のfeature mapの出力結果です。

以下は、レイヤー18のfeature mapの出力結果です。

2-3.ディープラーニング&画像処理関連タスク支援機能

2-3-1.resize()メソッド:画像データのリサイズ

2-3-2.as_patches()メソッド:画像データ拡張(元画像からパッチを生成)

2-3-3.two_way_split()メソッド:データ分割(学習、テスト)

2-3-4.plot_network()メソッド:定義したディープラーニングの層(ネットワーク)の構造をグラフィカルな図として描画

2-3-5.plot_training_history()メソッド:反復学習の履歴表示

2-3-6.predict()メソッド:予測(スコアリング)結果の表示

2-3-7.plot_predict_res()メソッド:分類結果の表示

そして、もちろん、DLPyを使用すると、SAS Viyaのインメモリーセッションからデータを取得してローカルクライアントに渡し、numpy配列やDataFrameなどの一般的なデータ形式に変換できます。 変換されたデータは、scikit-learnなどの他のオープンソースパッケージのモデルにスムーズに供給が可能です。

DLPyを用いた画像分類に関しては、SAS Viya特設サイト内のPythonセクション内に動画も公開されています。

Share

About Author

Makoto Unemi (畝見 真)

ビジネスディベロップメントグループ

データ分析によりビジネス価値を創造する「ビジネス・アナリティクス」を日本市場に浸透させる活動に長年従事し、金融・製造・通信業を中心に数多くのアナリティクス・プロジェクトの提案に参画。 現在はAIプラットフォームなど新たなテクノロジーの活用に特化した提案を担当している。 ディープラーニングや機械学習などのAIテクノロジーや大規模分析基盤アーキテクチャについての豊富な知見、経験を持つ。 新たなテクノロジーでも分かりやすく解説するプレゼンテーションには定評があり、満足度の高い講演を年間、数多く行っている。

3 Comments

  1. Katsunari Hirano on

    Pythonに詳しくないため,教えてください.
    上記の解析は,SAS Viya + SAS studioでも実施できるのでしょうか?

    • Makoto Unemi (畝見 真)
      畝見 真 on

      このBlogは、Python向けのハイレベルAPIであるDLPyの機能概要をご紹介しています。
      つまり、DLPyはPython向けであり、SAS Studioでは使用することはできませんので、上記でご紹介しているDLPyに含まれる各種のメソッドは使用できません。
      但し、SAS Viyaのディープラーニングの機能(Action)は、SAS Studioでも使用することはもちろん可能です。

  2. Pingback: SAS Viya: Package for Python API for deep learning and image processing: DLPy - SAS Users

Leave A Reply

Back to Top