2017-03-29 11 views
4

keras Conv1Dレイヤーに2次元入力が与えられたときに何が起こるか説明できますか?このように :2D入力のConv1D

model=Sequential() 
model.add(Conv1D(input_shape=(9000,2),kernel_size=200,strides=1,filters=20)) 

入力(9000,1)の間のサイズ及び(9000,2)及び(model.summaryを呼び出す)を変化させる、Iは出力形状は同じままでいることがわかりますが、パラメータの数変更。つまり、各チャンネルごとに異なるフィルタが訓練されていますが、出力は出力前に2次元で合計/平均化されていますか?または何?

答えて

1

In the docあなたは入力が2Dでなければならないことを読むことができます。

Conv1Dは、一連のベクトルを通過する時間ウィンドウとして見ることができます。カーネルはベクトルの長さ(入力の2番目の次元)と同じ大きさの2次元ウィンドウです。

実際には2つのネットワークが同じであることは完全に正常です出力形状...そして第2次元のためにカーネルが2倍大きいので、パラメータの数はより高い。私は、これはここで:-)

+0

あるので、私たちは、「1D」は形状をフィルタリングするために参照しませんが、「動き」をフィルタリングすることを考えるべき? – Kaare

+0

実際には、畳み込みの次元であり、フィルタのサイズではありません –

2

を役に立てば幸い

ビジュアルイラストが

kernel_size = (2,) 

------------- 
| 1 1 1 1 1 |    <---- kernel dim = kernel_size X 5 
| 2 2 2 2 2 | 
------------- 
    3 3 3 3 3 



-------------------------- 
| 1 1 1 1 1 1 1 1 1 1 1 1 | <---- kernel dim = kernel_length X 12 
| 2 2 2 2 2 2 2 2 2 2 2 2 |  i.e more params! but after 
--------------------------   you apply say MaxPool1D(pool_size=(2,2)) 
    3 3 3 3 3 3 3 3 3 3 3 3   in both cases, then layer shapes from here 
            on out are the same, thus same outputs! 
+0

「時間軸」が視覚化を指摘していることは正しく理解されていますか? – Kaare

+0

はい!私はその答えを反映するように更新します – putonspectacles

関連する問題