Reshape
层无法正常工作。在下面的示例中,我认为最后一行应返回形状为[5,1]
的张量对象。但是会引发错误,指出形状[5]
张量不能重塑为大小[5,5,1]
张量。
>>> from keras.layers import Reshape
>>> from keras import backend as K
>>> import numpy as np
>>> x = K.constant(np.array([1,2,3,4,5]))
>>> K.eval(x)
array([1., 2., 3., 4., 5.], dtype=float32)
>>> Reshape(target_shape=(5,1))(x)
...
ValueError: Cannot reshape a tensor with 5 elements to
shape [5,5,1] (25 elements) for 'reshape_3/Reshape' (op:
'Reshape') with input shapes: [5], [3] and with input
tensors computed as partial shapes: input[1] = [5,5,1].
有人可以解释一下Reshape层的工作原理(即为什么要添加额外的暗淡)以及如何将矢量重塑为矩阵吗?
谢谢
答案 0 :(得分:2)
用户Reshape(target_shape=(1,))(x)
batch_size
隐含在整个模型中,并且从头到尾都被忽略。
如果您要访问批次大小,请使用K.reshape(x,(5,1))
。
如果不创建完全由图层组成的模型,则不应使用Keras。