3.7.10. renom.utility.searcher package

class Searcher ( parameter , **kwargs )

ベースクラス: object

ハイパーパラメータ探索を提供する基底クラス

パラメータ: parameter ( dict ) – 探索パラメータを与える辞書
>>> 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, RandomSearcher
>>>
>>> x = np.random.randn(1000, 28*28)
>>> y = np.random.randn(1000, 10)
>>>
>>> parameters = {
...     "unit":[i for i in range(10, 100, 10)],
...     "activation":[L.Tanh, L.Relu, L.Sigmoid]
...     }
>>>
>>> epoch = 30
>>> batch=100
>>>
>>> searcher = RandomSearcher(parameters)
>>>
>>> for param in searcher.suggest(5):
...     model = Model(
...         layers = [
...             L.Input(28*28),
...             L.Dense(param["unit"]),
...             param["activation"](),
...             L.Dense(10),
...             L.Mean_squared_error()
...         ])
...     opt = Sgd(model, lr = 0.01)
...     trained = trainer(opt, x, y, epoch = epoch, batch_size = batch,
...                                 print_process = False, show_graph = False)
...     searcher.add(trained.test_regression(x, y, batch = 10))
>>> for p in searcher.best(3):
...     print(p)
(0.086159815306108931, {'activation': <class 'renom.layers.activation.tanh.Tanh'>, 'unit': 90})
(0.087958173424351319, {'activation': <class 'renom.layers.activation.relu.Relu'>, 'unit': 90})
(0.089504164887756588, {'activation': <class 'renom.layers.activation.tanh.Tanh'>, 'unit': 70})
add ( result )

Searcherに、ハイパーパラメータの評価値を追加する。

パラメータ: result ( float ) – パラメータの評価値
suggest ( max_iter=100 )

探索したパラメータを返すジェネレータを生成する。

パラメータ: max_iter ( int ) – 最大探索回数
best ( num=3 )

パラメータ探索後、最も低い値が得られた時の パラメータから引数で与えられた個数のパラメータを返す。

パラメータ: num ( int ) – 返すハイパーパラメータ数。
Return tuple: ハイパーパラメータと評価値のリスト
class BayesSearcher ( parameter , random_search=3 , th0=0.01 , thL=0.0001 , thU=0.1 , k=0.1 , **kwargs )

ベースクラス: renom.utility.searcher.searcher.Searcher

ベイズ最適化に基づいたハイパーパラメータの探索を提供するクラス。

パラメータ:
  • parameter ( dict ) – 探索パラメータを与える辞書
  • random_search ( int ) – 最初にランダムサーチを繰り返す回数
  • th0 – theta0 パラメータ
  • thL – thetaL パラメータ
  • thU – thetaU パラメータ
  • k – k パラメータ

注釈

scikit-learnのGaussianProcess関数を使用するため、scikit-learnをインストールしておく必要がある。

class RandomSearcher ( parameter , **kwargs )

ベースクラス: renom.utility.searcher.searcher.Searcher

ハイパーパラメータのランダムサーチを提供するクラス 使用方法は他のSearcherクラスと同様

パラメータ: parameter ( dict ) – 探索パラメータを与える辞書
class GridSearcher ( parameter , **kwargs )

ベースクラス: renom.utility.searcher.searcher.Searcher

ハイパーパラメータのグリッドサーチを提供するクラス 使用方法は他のSearcherクラスと同様

パラメータ: parameter ( dict ) – 探索パラメータを与える辞書
class TPESearcher ( parameter , random_search=2 , gamma=0.15 )

ベースクラス: renom.utility.searcher.searcher.Searcher

This method is under constructing.