「ReNomDL」最新版となるversion3のリリースのお知らせ

NEWS
深層学習モデルを開発するためのディープラーニングフレームワークReNomDLの最新版となるversion3をリリースしました。ReNomDLとは、弊社が自社で開発・提供する深層学習モデル開発のための自動微分ライブラリであり、ReNomプラットフォーム上で提供するツールのほぼすべての基盤であります。そして、数値・時系列データの回帰モデル作成や、画像における物体検出や画像分類、セグメンテーションを実施するために必要なアルゴリズム、 前処理等のユーティリティをライブラリとして実装しており、洗練された CUI・API を用いて、ユーザーの課題に応じた高度なモデルの開発が可能なツールです。また、ReNomプラットフォームではReNom DLをベースに、開発目的別にGUI開発アプリケーションを提供し、簡単なAI開発(画像認識や回帰・ 予測モデル)については、専門技術者でなくてもAI開発の開発工程を高速で行うことが可能です。

 

<ReNomDL version3の特長について>

ReNomDL version 3は、「ユーザーのプログラミングスキルによらず、 高速かつ省メモリなNeural Networkを作れること」(powerful)をコンセプトに開発が行われています。具体的には、ユーザーが実装した Neural Networkにおける順伝播計算、 逆伝播計算、データ入力、前処理、後処理、勾配法に基づく重みの更新等のすべての処理をオペレーションノードとして扱い、それらノードのつながりを計算グラフとして保持します。そして計算グラフ上に存在する並列化可能なオペレーションノードや、学習過程において必要が無いオペレーションノードを自動で発見し、並列実行や処理をスキップするといった最適化を行います。このように、ReNomDL version 3 は「ユーザーが定義したNeural Network に対し、データ入力、前処理、重み更新まで含めて最適化を実行すること」(optimized)から、「ユーザーのプログラミングスキルによらずパフォーマンスの良いNeural Network を実装すること」(easy) が可能となります。

<2種類のアーキテクチャについて>

一般的にディープラーニングフレームワークには、2種類のアーキテクチャが存在します。ひとつは Defined by Runと呼ばれる、Pytorch(*1)のように、データを実際にNeural Networkに与え、順伝播計算履歴を取得し、その計算履歴を元に誤差逆伝播計算を行う方法です。もうひとつは、 Define and Runと呼ばれる Tensorflow(*2) のように、最初に Neural Network 上におけるデータの扱われ方を定義し、ネットワーク構造の最適化をかけ、その後データを実際に与え順伝播計算や誤差逆伝播を実行するという方法です。ReNomDL version 3 では、Defined by Run 方式に基づく実行方法と Define and Run 方式に基づく実行方法の両方を提供しており、それぞれの実行方法をEager Mode、Executor Modeと呼びます。

[Eager Mode]

Eager Modeでは、Defined by Run方式の特徴であるデータを与えながら、Neural Networkを構築できるという利点を活かすことができます。具体的には、 ソースコードのようにデータが与えられるたびに、新たな計算履歴を作り直すようなプログラムを書くことができます。

[Executor Mode]

Executor Modeでは、Define and Run方式の特徴であるNeural Networkの 定義とその全体最適化を行った後にデータを与え、効率的に計算を実行するという特徴を活かすことができます。具体的には、最初に与えたデータ形式で計算グラフを抽出し、その計算グラフを何度も再利用することができます。

*1:Pytorch https://pytorch.org/

*2:Tensorflow https://www.tensorflow.org/

 

<ReNomDL version3の使用可能な関数について>

ReNomDL version 3では、過去のバージョンと同様に、さまざまな Neural Networkを構築するために必要な関数を提供しています。 以下はその一部をリストアップしたものです。

【使用可能な関数一覧(一部を抜粋)】

Dense(全結合層)
N-dimentional Convolution(N次元畳み込み層)
N-dimentional Deconvolution(N次元逆畳み込み層)
N-dimentional Pooling(N次元プーリング層)
N-dimentional Unpooling(N次元逆プーリング層)
Lrn(局所レスポンス正規化)
Lstm(Long short time memory層)
Gru(Gated recurrent unit層)
Batch Normalization(バッチ正規化層)
Weight Normalization(重み正規化層)
Layer Normalize(レイヤ正規化層)
各種活性化関数
各種二項演算子
各種単行演算子

 

ReNomDLは、シンプルなプログラムでより高速な学習を実現することを目指して参ります。

 

■ReNomDLダウンロード リンク
https://github.com/ReNom-dev-team/ReNom

■ReNom公式サイト
<ドキュメント>
http://www.renom.jp/

<GitHub>
ReNomはGitHubより、ダウンロードして頂くことが可能で、ソフトウェアのご利用にあたっては、事前にライセンスをご確認頂きご利用下さい。
https://github.com/ReNom-dev-team/ReNom

 

 

Page top