diff --git a/python/paddle/v2/topology.py b/python/paddle/v2/topology.py index 16fc92e63d98cfa714fd9a0a94f7f10385374f80..4c211254319bbdf46b02a2cee56b6a98b01819a2 100644 --- a/python/paddle/v2/topology.py +++ b/python/paddle/v2/topology.py @@ -21,7 +21,21 @@ import layer as v2_layer __all__ = ['Topology'] +def __flatten__(lis): + """ + Given a list, possibly nested to any level, return it flattened. + """ + new_lis = [] + for item in lis: + if isinstance(item, collections.Sequence): + new_lis.extend(__flatten__(item)) + else: + new_lis.append(item) + return new_lis + + def __bfs_travel__(callback, *layers): + layers = __flatten__(layers) for each_layer in layers: __break__ = callback(each_layer) if __break__: