質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

2683閲覧

tensorflow・kerasのsinpleRNNの活性化関数を変更する方法

kamome01

総合スコア16

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2018/01/17 05:14

###前提・実現したいこと
tensorflowのkerasというライブラリを用いて,SimpleRNNを構築しました.
しかし,このままでは勾配消失問題を解決出来ません.
LSTM,GRUで解決することも出来ますが,計算に時間がかかり過ぎます.
そこで,SimpleRNNの活性化関数をreluにすると,LSTM,GRUと同等の精度を得ることが出来るという技術報告を拝見しました.
これを試したいのですが,kerasによるSimpleRNNの活性化関数の変え方がわかりません.

###該当のソースコード

python

1model = Sequential() 2model.add(SimpleRNN(n_hidden, 3 input_shape=(maxlen, n_in))) 4model.add(Dense(n_out)) 5model.add(Activation('sigmoid')) 6

###試したこと
該当コードにかかれているActivationを変更しましたが,出力層の活性化関数が変更されただけでした.
出力層ではなく,再帰構造を持つ層の活性化関数をreluにしたいのです.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

https://keras.io/ja/layers/recurrent/

SimpleRNN

keras.layers.recurrent.SimpleRNN(units, activation='tanh', use_bias=True, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0)
出力が入力にフィードバックされる全結合RNN.

引数

units: 正の整数値,出力の次元数.
activation: 活性化関数(activationsを参照).Noneを渡すと活性化関数は適用されません (例."linear" activation: a(x) = x).

とあるので

activation='relu'

などをSimpleRNNに渡せばよいように思いますが、それではうまくいきませんでしたか?

投稿2018/01/17 11:13

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kamome01

2018/01/22 07:30

ありがとう御座います. 初歩的な質問ですみませんでした.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問