Keras教程提供了以下代码示例(带注释):
Public Class Form1
Private WithEvents p As New System.Diagnostics.Process
Public Event pEnd As EventHandler
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
p.StartInfo.FileName = "notepad.exe"
p.EnableRaisingEvents = True
p.Start()
End Sub
Private Sub p_Ended(ByVal sender As Object, ByVal e As System.EventArgs) Handles p.Exited
DoYourPostExitFileProcessing()
End Sub
End Class
我对输出大小感到困惑。它不应该创建10个时间步长,深度为64,宽度为32(步幅默认为1,无填充)?所以# apply a convolution 1d of length 3 to a sequence with 10 timesteps,
# with 64 output filters
model = Sequential()
model.add(Convolution1D(64, 3, border_mode='same', input_shape=(10, 32)))
# now model.output_shape == (None, 10, 64)
代替(10,32,64)
答案 0 :(得分:2)
在k-dimensional维数卷积中,你将有一个过滤器,它将以某种方式保留第一个k维的结构,并通过用过滤器权重对它们进行卷积来压缩所有其他维度的信息。因此,网络中的每个过滤器基本上都有一个维度(3x32),并且最后一个维度(这个大小为32)的所有信息将被压缩为一个实数,并保留第一个维度。这就是为什么你有这样的形状的原因。
当你有彩色图像时,可以想象二维情况下的类似情况。您的输入将具有三维结构(picture_length,picture_width,color)。当您对前两个维度应用二维卷积时 - 有关颜色的所有信息都将被过滤器压扁,并且不会保留在输出结构中。和这里一样。