3.7.11. renom.utility.trainer package

trainer ( model , train_x=None , train_y=None , validate_x=None , validate_y=None , train_distributor=None , test_distributor=None , print_process=True , epoch=100 , batch_size=32 , callback=None , show_graph=False , save_result=False )

epoch数で与えられた回数分の学習を行うtrainer関数。

パラメータ:
  • model ( Model ) – 学習対象のニューラルネットワークモデル
  • train_x ( ndarray ) – 入力データ
  • train_y ( ndarray ) – 教師データ
  • varidation_x ( ndarray ) – 評価用入力データ
  • varidation_y ( ndarray ) – 評価用教師データ
  • train_distributor ( NdarrayDistributor ) – 学習用データ
  • test_distributor ( NdarrayDistributor ) – 評価用データ
  • print_process ( boolean ) – 真のとき、学習プロセスを表示
  • epoch ( int ) – エポック数
  • batch ( int ) – バッチサイズ
  • callback ( function ) – 学習ループ内で呼び出されるコールバック関数
  • show_graph ( boolean ) – 真の時、学習後にグラフを表示する
  • save_result ( string ) – 指定されたパスに学習結果を出力する
Return Trainer:

学習実行後のTrainerクラスインスタンス

>>> import numpy as np
>>> from renom.model.model import Model
>>> import renom.layers as L
>>> from renom.optimizers import Sgd
>>> from renom.utility import trainer
>>>
>>> x = np.random.rand(1000, 28*28)
>>> y = np.random.rand(1000, 10)
>>> model = Model(
...     layers = [
...         L.Input(28*28),
...         L.Dense(100),
...         L.Relu(),
...         L.Dense(10),
...         L.Mean_squared_error()
...     ])
>>> opt = Sgd(model, lr = 0.01)
>>> epoch = 20
>>> batch=100
>>> trained = trainer(opt, x, y, epoch = epoch, batch_size = batch, show_graph = False)
Epoch: ____0 | Train_d: 2.698436 | Time _____0.007 sec
...
>>> print(trained.test_regression(x, y, batch = 10)) # 回帰実行時の、答えとの二乗誤差
0.0515971549355
class Trainer ( model=None , distributor=None , varidation_distributor=None , batch=100 , epoch=100 , label_binalize=False , print_process=False , callback=None , show_graph=False , save_result=True )

定義したニューラルネットワークをを学習させるためのクラス。 trainer関数でインスタンス化される。

パラメータ:
  • model ( Model ) – 学習対象のニューラルネットワークモデル
  • train_distributor ( NdarrayDistributor ) – 学習用データ
  • varidation_distributor ( NdarrayDistributor ) – 評価用データ
  • batch ( int ) – バッチサイズ
  • epoch ( int ) – エポック数
  • label_binalize ( boolean ) – Not implemented yet.
  • print_process ( boolean ) – 真のとき、学習プロセスを表示
  • callback ( function ) – 学習ループ内で呼び出されるコールバック関数
  • show_graph ( boolean ) – 真の時、学習後にグラフを表示する
  • save_result ( string ) – 指定されたパスに学習結果を出力する
train ( )

学習を実行する関数。

predict ( x )

学習済みモデルを使用して、結果を予測する

パラメータ: x ( ndarray ) – 入力データ
Return ndarray: 推論結果
test ( x=None , y=None , distributor=None , batch=None )

学習したモデルに対して、入力値xを与えた時の出力を返す。 predict関数では、誤差関数は無視されるが、test関数では誤差関数も含めて 評価された結果を返す。

パラメータ:
  • x ( ndarray ) – 入力データ
  • y ( ndarray ) – 教師データ
  • distributor ( NdarrayDistributor ) – 入力データを与えるdistributor
  • batch ( int ) – バッチサイズ
Return ndarray:

順伝播結果

test_clasification ( x , y , batch=None )

学習したモデルに対して、入力値xを与えた時のクラスタリング結果を返す。

パラメータ:
  • x ( ndarray ) – 入力データ
  • y ( ndarray ) – 教師データ
  • batch ( int ) – バッチサイズ
Return tuple:

出力結果のリスト

test_regression ( x , y , batch=None )

学習したモデルに対して、入力値xを与えた時の出力と教師データとの平均二乗誤差を返す。

パラメータ:
  • x ( ndarray ) – 入力データ
  • y ( ndarray ) – 教師データ
  • batch ( int ) – バッチサイズ
Return tuple:

出力結果のリスト

test_cross_entropy ( x , y , batch=None )

学習したモデルに対して、入力値xを与えた時の出力と教師データとの平均クロスエントロピーを返す。

パラメータ:
  • x ( ndarray ) – 入力データ
  • y ( ndarray ) – 教師データ
  • batch ( int ) – バッチサイズ
Return tuple:

出力結果のリスト