我在用序贯模型研究角蛋白。
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'))扁平化在这里做什么?
发布于 2018-02-18 20:49:02
看看相关文献,它包含了一个很好的例子:
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)
解释这个最后的形状:
None就像一个空占位符,它将等待批处理的大小。65536是在输入维度上运行扁平化的结果:
64 \* 32 \* 32 == 65536 # True与NumPy的比较
它类似于来自flatten()的NumPy函数。下面是一个小例子:
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])这样我们就可以看到矩阵了。排名-2张量)已经平了,在这里行。
https://stackoverflow.com/questions/48855804
复制相似问题