2017-05-01 9 views
3

私は解決しようとしている非常に具体的な問題があります。それは非常に簡単なようですが、私はkerasでそれを実装することはできません。例えば、私はinput_dim = 300を持っています。その上で、ストライド100でサイズ100のフィルターを適用する必要があります。基本的に、ベクトルの100列のそれぞれを独立して使用し、それぞれにアクティブ化を適用します。だから私は3つの出力を持っていて、完全に接続されたレイヤーに接続されています。私はグーグルとKerasのドキュメントを参照しようとしましたが、パラメータの値はどうなるべきかについては非常に不明です。質問が少し曖昧であればお詫び申し上げます。 it looks something like thisKeras LocallyConnected1D layer

これは、私が図で述べた構成を得るために考えられる方法の1つであるとも付け加えたいと思います。 3つのパーセプトロンのようなものが層を形成するように接続され、次に別の密な層に接続される。しかし、他の方法があるかもしれません。

+0

あなたは何を試しましたか? 'LocallyConnected1D(3、100、input_shape =(None、300))'だけではありませんか? – maxymoo

+0

私はKerasを初めて習得しました。議論が意味するものを理解するのに苦労しました。 – niknak

答えて

0

明らかに、私は出力の形がすべて間違っていました。フィルターのサイズが100で、ストライドのサイズが100であることがわかったら、それは明らかで、出力活性化レイヤーのサイズが3であることもケラで分かります。もう一方の可能性のあるパラメータ(おそらく、 tはこれを試みた)各入力ニューロン自体が多次元である場合にフィルタの深さを扱う。 RGB値のようなもの。今はなぜまだ1Dと呼ばれているのですか、よく分かりません。おそらく、ニューロンの配列がまだ1Dであるためです。しかしここにあなたがそれをする方法があります。

model.add(LocallyConnected1D(1, 100, strides=100, input_shape=(300, 1))) 
+0

1Dと呼ばれるのは、「時間」に沿って1次元で「移動」されるだけなので、1Dとも呼ばれます.2Dも別の次元に移動する必要があります寸法。 –

関連する問題