有人能向我解释当一个角星Conv1D层被输入到2D时会发生什么吗?例如:
model=Sequential()
model.add(Conv1D(input_shape=(9000,2),kernel_size=200,strides=1,filters=20))在(9000,1)和(9000,2)之间更改输入大小并调用model.summary(),我看到输出形状保持不变,但参数的数量会发生变化。那么,这是否意味着为每个通道训练不同的滤波器,但是输出在输出前要经过第二维的求和/平均?不然呢?
发布于 2017-03-29 15:13:05
在医生里您可以读到输入必须是2D的。
Conv1D可以看作是一个时间窗口,通过一系列向量.内核将是二维窗口,与向量长度一样大(输入的第二维度),并且与您的窗口大小一样长。
所以这是完全正常的,你的两个网络有相同的输出形状.由于核的尺寸是第二维的2倍,所以参数的个数更大。
我希望这会有所帮助:)
发布于 2017-03-29 16:10:41
这是一个直观的例子
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!https://stackoverflow.com/questions/43091358
复制相似问题