在tf.keras.models.Sequential中与图层输入/输出形状作斗争

时间:2018-09-24 14:59:28

标签: python tensorflow keras

已解决

我想尝试使用tf.keras.models.Sequential,但我发现Conv图层采用形状(采样,暗淡,暗淡,通道)的数据,但是以(采样,暗淡,暗淡,过滤器)的形式输出。

如何在输出上运行第二个Conv层,最好使用3D(Dim,Dim,Filters)滤镜?

Conv3D要求更多尺寸(可能是额外的Channel尺寸)。我意识到我可以重塑,但考虑到原始tensorflow语法在2D层可以具有3D滤镜的情况下不太钝,这感觉像我做错了。

我在做什么错?相关代码:

model = tf.keras.models.Sequential([
    tf.keras.layers.InputLayer((28,28), 60000), # Mnist goes here
    tf.keras.layers.Reshape((28,28,1)),         # black magic
    tf.keras.layers.Conv2D(12, (9,9)),          # outputs (60000, 20,20,12)
        # So a reshape goes here?
        # tf.keras.layers.Conv2D(40, (5,5,12)), # too many dimensions on filter
        # tf.keras.layers.Conv3D(40, (5,5,10))        # wants 5 dimensions
    tf.keras.layers.Conv2D(40, (5,5))           # should have done this, 
                                        # didn't realize it would iterate over all channels
])

0 个答案:

没有答案