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

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

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

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1128閲覧

kerasでLSTMを使ったニューラルネットワークを作りたい functional api

Flan.

総合スコア123

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/04/12 10:23

kerasで実装しようとしたんですがよくわからないエラーが出てきました
LSTM層の➡ )(self.a) の部分でエラーが起きてますたぶん

コード class QNetwork : def __init__(self, learning_rate=0.001, statesize=4, action_size=2): self.inputs = Input(shape=(statesize,)) self.a=Dense(6,activation='relu', use_bias=True,kernel_initializer='he_normal',bias_initializer='zeros',kernel_constraint=max_norm(2.), bias_constraint=max_norm(2.))(self.inputs) self.a=Dense(6,activation='relu', use_bias=True,kernel_initializer='he_normal',bias_initializer='zeros',kernel_constraint=max_norm(2.), bias_constraint=max_norm(2.))(self.a) self.a = LSTM(10,activation='relu', stateful=True, recurrent_activation='hard_sigmoid',use_bias=True,kernel_initializer='he_normal',bias_initializer='zeros',unit_forget_bias=True,recurrent_initializer='orthogonal',recurrent_regularizer=max_norm(2.5),dropout=0.1,kernel_constraint=max_norm(2.),recurrent_dropout=0.1, implementation=1,return_sequences=False, return_state=False,go_backwards=False, bias_constraint=max_norm(2.),name="lstm")(self.a)        ---略ーーーー
エラー --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-24-4c99caf15b22> in <module> 191 statesize=4 #モデルのinput 192 # [4.2]Qネットワークとメモリ、Actorの生成-------------------------------------------------------- --> 193 mainQN = QNetwork(learning_rate=learning_rate,action_size=2) # メインのQネットワーク 194 targetQN = QNetwork(learning_rate=learning_rate,action_size=2) # 価値を計算するQネットワーク 195 # plot_model(mainQN.model, to_file='Qnetwork.png', show_shapes=True) # Qネットワークの可視化 <ipython-input-24-4c99caf15b22> in __init__(self, learning_rate, statesize, action_size) 47 recurrent_activation='hard_sigmoid',use_bias=True,kernel_initializer='he_normal',bias_initializer='zeros',unit_forget_bias=True,recurrent_initializer='orthogonal',recurrent_regularizer=max_norm(2.5),dropout=0.1,kernel_constraint=max_norm(2.),recurrent_dropout=0.1, 48 implementation=1,return_sequences=False, return_state=False,go_backwards=False, ---> 49 bias_constraint=max_norm(2.),name="lstm")(self.a) 50 51 self.v=Dense(6,activation='relu', ~\Anaconda3\lib\site-packages\keras\layers\recurrent.py in __call__(self, inputs, initial_state, constants, **kwargs) 539 540 if initial_state is None and constants is None: --> 541 return super(RNN, self).__call__(inputs, **kwargs) 542 543 # If any of `initial_state` or `constants` are specified and are Keras ~\Anaconda3\lib\site-packages\keras\engine\base_layer.py in __call__(self, inputs, **kwargs) 444 # Raise exceptions in case the input is not compatible 445 # with the input_spec specified in the layer constructor. --> 446 self.assert_input_compatibility(inputs) 447 448 # Collect input shapes to build layer. ~\Anaconda3\lib\site-packages\keras\engine\base_layer.py in assert_input_compatibility(self, inputs) 340 self.name + ': expected ndim=' + 341 str(spec.ndim) + ', found ndim=' + --> 342 str(K.ndim(x))) 343 if spec.max_ndim is not None: 344 ndim = K.ndim(x) ValueError: Input 0 is incompatible with layer lstm: expected ndim=3, found ndim=2

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

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

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

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

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

guest

回答1

0

ベストアンサー

Kerasの場合、最初の次元はバッチ数でなければなりません。
LSTMの場合、[時間軸, チャンネル数]ではなく[バッチ数, 時間軸, チャンネル数]とする必要があります。

投稿2020/04/13 02:24

fiveHundred

総合スコア9797

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問