的Flatten()
运营商将展开在最后一个维度开始值(至少Theano,这是“渠道至上”,而不是“渠道最后”像TF,我不能在我的环境中运行TensorFlow)。这等同于numpy.reshape
与“C”顺序:
“C”手段读/使用C-像索引顺序写入的元素,与 最后轴指数变化最快,回第一轴索引 变化最慢。
这里是一个独立的例子,说明具有Keras Functional API的Flatten
操作符。您应该能够轻松适应您的环境。
import numpy as np
from keras.layers import Input, Flatten
from keras.models import Model
inputs = Input(shape=(3,2,4))
# Define a model consisting only of the Flatten operation
prediction = Flatten()(inputs)
model = Model(inputs=inputs, outputs=prediction)
X = np.arange(0,24).reshape(1,3,2,4)
print(X)
#[[[[ 0 1 2 3]
# [ 4 5 6 7]]
#
# [[ 8 9 10 11]
# [12 13 14 15]]
#
# [[16 17 18 19]
# [20 21 22 23]]]]
model.predict(X)
#array([[ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,
# 11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21.,
# 22., 23.]], dtype=float32)
这是关于Flatten如何工作的一个非常简洁的答案。 – nafizh