【发布时间】:2017-01-14 03:15:59
【问题描述】:
我有一个层输出,我想乘以一个标量。我可以使用 lambda 层来做到这一点,即
sc_mult = Lambda(lambda x: x * 2)(layer)
效果很好。但是,如果我想为每个示例使用不同的标量,我会尝试将它们作为第二个输入提供,形状为 (Examples, 1)
input_scalar = Input(shape = (1L,))
因此我的 lambda 层变为
sc_mult = Lambda(lambda x: x * input_scalar)(layer)
但现在这会在训练时引发错误。注意,32 是批量大小,128 是层输入(和输出)的维度 - 层输入乘以标量是 (batch_size x 32(前一层的过滤器) x 128(空间暗淡) x 128 (空间暗淡))。
GpuElemwise. Input dimension mis-match. Input 5 (indices start at 0) has shape[2] == 32, but the output's size on that axis is 128.
我假设我没有通过输入层输入正确的形状,但不知道为什么。
【问题讨论】: