1. ホーム
  2. python

[解決済み] Theano隠れ層活性化関数

2022-02-15 16:47:48

質問

隠れ層の活性化関数にRectified Linear Unit (ReLU)を使用する方法はありますか? tanh() または sigmoid() をテアノで使うのですか?隠れ層の実装は以下の通りで、ネットで検索した限りではReLUはTheano内部に実装されていないようです。

class HiddenLayer(object):
  def __init__(self, rng, input, n_in, n_out, W=None, b=None, activation=T.tanh):
    pass

解決方法は?

reluはTheanoで簡単にできます。

switch(x<0, 0, x)

あなたのケースでこれを使うには、reluを実装したPython関数を作り、それをactivationに渡します。

def relu(x):
    return theano.tensor.switch(x<0, 0, x)
HiddenLayer(..., activation=relu)

この実装を使う人もいます。 x * (x > 0)

UPDATE: 新しいTheanoのバージョンではtheano.tensor.nnet.relu(x)が利用可能です。