The document introduces new functions of ReNom RG. It mentions functions like storing and managing registration information, updating registration information, and printing registration cards. It provides details on the functions such as being able to store information like name, date of birth, address etc. and being able to update stored information. It also mentions the ability to print registration cards with the stored information on them.
This document discusses optimizations for deep learning frameworks to better utilize CPU and GPU resources. It describes how an executor can parallelize operations like convolution and matrix multiplication across multiple devices. The executor aims to support distributed training on multiple GPUs with techniques like data parallelism and model parallelism to improve training speed. It is compatible with Python APIs and can be used to benchmark the training of CNN models on different numbers of GPUs.
1. INFRASTRUCTURE + LIFE + INNOVATION
RNUG Kick Off Part 2
- ReNom 2.0 -
Copyright (C) 2017 GRID All Rights Reserved.
2. Copyright (C) 2017 GRID All Rights Reserved.
Agenda
p ReNomとは?
p 設計思想
p Version 1.0 version 2.0
p プログラムインタフェース
p 具体例 全結合ネットワーク, GAN
p まとめ
p 今後の展開、提供方法
4. ReNomとは?
Copyright (C) 2017 GRID All Rights Reserved.
大切にしていること:
NN構築しやすさ、変更しやすさ
開発理由:
DLの技術向上のため、他製品のバックエンド、使いやすさの向上
5. 設計思想
Copyright (C) 2017 GRID All Rights Reserved.
● NN構築、変更しやすさ ...
p 上からレイヤを並べてくことでNNを構築
p コメントアウトでレイヤを差し替えられる
p 正則化などの関数もレイヤ化
p ベイズサーチによるハイパーパラメータ探索
p Train関数
6. Version 1.0 ⇒ Version 2.0
Copyright (C) 2017 GRID All Rights Reserved.
Version 1.0 から Version 2.0へメジャーアップデートに伴い
ReNomをgithub上へ公開
11. プログラムインタフェース
Copyright (C) 2017 GRID All Rights Reserved.
p Numpyのndarrayと同じインターフェース
● ReNomで書いたコード
① 勾配を計算したい
変数を
Variableでラップ
② ReNomのsum演算に
置き換える
12. プログラムインタフェース
Copyright (C) 2017 GRID All Rights Reserved.
● xに関する勾配を取得
𝑓 𝒙 = 5 𝑎6 ∗ 𝑥6 + 𝑏6
𝑑𝑓
𝑑𝒙
= 𝒂
p Numpyのndarrayと同じインターフェース
Variableオブジェクトの
勾配をすべて取得
Xに関する勾配を取得
14. プログラムインタフェース
Copyright (C) 2017 GRID All Rights Reserved.
p SequentialモデルとFunctionalモデル
n ReNom Version1と同様、Sequentialモデルを提供
n 様々なフレームワークで提供されているFunctionalモデルを追加
15. プログラムインタフェース
● Sequentialモデル … レイヤオブジェクトを並べてニューラルネットを構築
Relu
入力層
中間層
出力層
p SequentialモデルとFunctionalモデル
Copyright (C) 2017 GRID All Rights Reserved.
16. プログラムインタフェース
● Functionalモデル … 関数の組み合わせで自由に演算を定義可能
Relu
入力層
中間層
出力層
p SequentialモデルとFunctionalモデル
Copyright (C) 2017 GRID All Rights Reserved.
22. 具体例 1 全結合ネットワークモデル
Copyright (C) 2017 GRID All Rights Reserved.
● L2正則化を追加
・L2ノルム正則化(weight decay)を付加
・Numpyで書くように重み正則化を追加することで、正則化を実装可能
・L1ノルム正則化やその他正則化も同様に、数式をそのままNumpyで書くように実装する
ことができる。
23. 具体例 1 全結合ネットワークモデル
Copyright (C) 2017 GRID All Rights Reserved.
●勾配降下アルゴリズムの適用
順伝播
L2ノルム正則化
誤差関数
Grads
オブジェクト
誤差逆伝播
24. 具体例 1 全結合ネットワークモデル
Copyright (C) 2017 GRID All Rights Reserved.
●勾配降下アルゴリズムの適用
n Gradsオブジェクトは勾配データとVariableオブ
ジェクトへの参照を保持
n そのためupdate関数はGradクラスに実装した
25. 具体例 1 全結合ネットワークモデル
Copyright (C) 2017 GRID All Rights Reserved.
●勾配降下アルゴリズムの適用
n Sgd、Adamなどの勾配降下アルゴリズム
はupdate関数の引数として与える。
26. 具体例 2 GANモデル
Copyright (C) 2017 GRID All Rights Reserved.
● GAN(Generative adversarial Network)を例にした複雑なニューラルネットワークの構築方法
Relu
Relu
Discriminator
Generator
Proper Distribution
Latent Distribution
1. GANモデル構築の簡単な説明
2. 複数のモデル定義から新たなモデル作成
3. ネットワークの一部分を更新する
27. 具体例 2 GANモデル
Copyright (C) 2017 GRID All Rights Reserved.
● GeneratorとDiscriminator
Discriminator
Generator
Proper Distribution
Latent Distribution
Relu
Relu
二つのネットワークを
Sequentialモデルで構築
28. 具体例 2 GANモデル
Copyright (C) 2017 GRID All Rights Reserved.
● GeneratorとDiscriminatorを統括するGANクラスを定義
Discriminator
Generator
Proper Distribution
Latent Distribution
Relu
Relu
定義済みモデル
Generator, Discriminator
29. 具体例 2 GANモデル
Copyright (C) 2017 GRID All Rights Reserved.
二つのネットワークを別々に更新する。
Relu
Relu
Discriminator
Generator
Proper Distribution
Latent Distribution
・Discriminatorのみを更新したい場合、generatorの
with prevent_updateブロックの中で重みを更新する。
このwithブロックの中では、
Generatorの重みパラメータは
更新されない。
30. 具体例 2 GANモデル
Copyright (C) 2017 GRID All Rights Reserved.
Relu
Relu
Discriminator
Generator
Proper Distribution
Latent Distribution
このwithブロックの中では、
Discriminatorの重みパラメータは
更新されない。
同様にGeneratorの重みだけをのみを更新
31. まとめ
Copyright (C) 2017 GRID All Rights Reserved.
n ReNomを 公開します
n ReNomは Defined by Run
n ReNomのVariableは Numpy ndarrayと同じインタフェース
n ReNomは 他DLフレームワークと、勾配の扱い方の点で異なる
32. 今後の展開
Copyright (C) 2017 GRID All Rights Reserved.
● 8月1日(火) Version 2.0 ドキュメント公開
● 8月8日(火) ReNom 2.0 公開
機能拡張、チューニング… 徐々に更新していきます
(Convolution3D, Temporal Dropout…)
提供方法
● 公開場所 : Github
https://github.com/ReNom-dev-team/ReNom