我正在研究顺序模型的keras。
model = Sequential()
model.add(Embedding(max_features, 128, input_length=text_max_words))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
答案 0 :(得分:3)
看看the relevant documentation,其中包含一个很好的例子:
model = Sequential()
model.add(Conv2D(64, 3, 3,
border_mode='same',
input_shape=(3, 32, 32)))
之前:model.output_shape == (None, 64, 32, 32)
model.add(Flatten())
在:model.output_shape == (None, 65536)
之后
解释这个最终形状: 它类似于NumPy的 现在执行展平操作: 所以我们可以看到矩阵(a.k.a. rank-two tensor)已被展平,这里是逐行的。
None
就像一个空的占位符,它将等待批量的大小65536
是在输入维度上运行展平的结果:`64 * 32 * 32 == 65536 # True`
与NumPy的比较
flatten()
函数。这是一个小例子:In [1]: import numpy as np
In [2]: A = np.random.randint(low=0, high=10, size=(3, 3))
In [3]: A
Out[3]:
array([[9, 6, 5],
[3, 4, 6],
[6, 7, 9]])
In [4]: A.flatten()
Out[4]: array([9, 6, 5, 3, 4, 6, 6, 7, 9])