在预训练模型中更改Lambda层中的变量?

时间:2019-02-18 13:23:40

标签: python tensorflow keras

我已经使用pytorch2keras将pytorch模型导入到keras中,并使输入的灵活性从[None,3,224,224]更改为[None,3,224,224]。不幸的是,在原始模型中,存在一个Lambda层,将卷积层的输出降低了1,例如, [None,3,111,111]-> [None,3,110,110]。

如何在我的配置中指定要执行的操作[无,3,无,无]-> [无,3,无-1,无-1]?

Lambda层的形状在此处进行了硬编码(请参见以下行:(3,0,110)):

[...,  
{'name': 'lambda_2',
  'class_name': 'Lambda',
  'config': {'name': 'lambda_2',
   'trainable': True,
   'function': ('4wQAAAAAAAAABAAAAAYAAABTAAAAc34AAAB8AWQBawJyFHwAfAJ8A4UCGQBTAHwBZAJrAnIwfABk\nAGQAhQJ8AnwDhQJmAhkAUwB8AWQDawJyUnwAZABkAIUCZABkAIUCfAJ8A4UCZgMZAFMAfAFkBGsC\ncnp8AGQAZACFAmQAZACFAmQAZACFAnwCfAOFAmYEGQBTAGQAUwApBU7pAAAAAOkBAAAA6QIAAADp\nAwAAAKkAKQTaAXjaBGF4aXPaBXN0YXJ02gNlbmRyBQAAAHIFAAAA+j4vdXNyL2xvY2FsL2xpYi9w\neXRob24zLjYvZGlzdC1wYWNrYWdlcy9weXRvcmNoMmtlcmFzL2xheWVycy5wedoMdGFyZ2V0X2xh\neWVypgQAAHMQAAAAAAEIAQwBCAEUAQgBGgEIAQ==\n',
    (3,0,110),
    None),
   'function_type': 'lambda',
   'output_shape': None,
   'output_shape_type': 'raw',
   'arguments': {}},
  'inbound_nodes': [[['lambda_1', 0, 0, {}]]]},
..]

1 个答案:

答案 0 :(得分:0)

您可以尝试用lambda x: x[:,:,:-1,:-1]替换该功能。 (如果您稍后决定使用channels_last,则使用lambda x: x[:,:-1, :-1]

不确定如何处理参数(3,0,110),但这似乎不必要。