【问题标题】:Why deleting one dimension in tensor causes InvalidArgumentError: Matrix size-incompatible?为什么删除张量中的一维会导致 InvalidArgumentError: Matrix size-incompatible?
【发布时间】:2018-12-08 06:08:36
【问题描述】:

我的部分代码:

reshape_out = Reshape((3, 21, 1), input_shape=(21*3,), name='reshape_to_3_21')(output3d)
drop_out = Lambda(lambda x:x[0:2, :, :], output_shape=(2, 21, 1), name='projection')(reshape_out)
flatten_out = Flatten()(drop_out)

我收到以下错误:

InvalidArgumentError: Matrix size-incompatible: In[0]: [2,63], In[1]: [42,1024].

但是如果

drop_out = Lambda(lambda x:x[0:2, :, :], output_shape=(2, 21, 1), name='projection')(reshape_out)

被删除,一切正常。为什么?

【问题讨论】:

  • 你能发布整个堆栈跟踪吗?似乎重塑无法正常工作

标签: python tensorflow keras keras-layer keras-2


【解决方案1】:

第一个轴是批处理轴,您似乎错误地将其切片而不是第二个轴:

def drop_output_shape(shp):
    return (shp[0], 2) + shp[2:]

drop_out = Lambda(lambda x: x[:, 0:2, :, :], 
                  output_shape=drop_output_shape, name='projection')(reshape_out)
猜你喜欢
  • 2019-10-30
  • 2017-04-24
  • 1970-01-01
  • 1970-01-01
  • 2020-06-12
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
相关资源
最近更新 更多