我想要计算模型层的数量。我使用两种方法:
len(model.layers)和
len(model.layers_by_depth)但是我得到了不同的结果。layers_by_depth和layers有什么区别?谢谢!
发布于 2020-10-28 00:40:22
model.layers将为您提供所有层的列表。它们与您添加它们的顺序基本一致。
model.layers_by_depth (在较新的版本中似乎已被删除)将为您提供一个字典,其中包含每个深度(关键点)的图层列表。
在这里,图层将按深度分组。
发布于 2017-11-24 17:41:01
您可以阅读source code以了解layers_by_depth是如何构建的:
# Build a dict {depth: list of layers with this depth}
layers_by_depth = {}
for layer, depth in layers_depths.items():
if depth not in layers_by_depth:
layers_by_depth[depth] = []
layers_by_depth[depth].append(layer)self.layers是如何构建的:
# Set self.layers and self.layers_by_depth.
layers = []
for depth in depth_keys:
layers_for_depth = layers_by_depth[depth]
# Container.layers needs to have a deterministic order:
# here we order them by traversal order.
layers_for_depth.sort(key=lambda x: layer_indices[x])
for layer in layers_for_depth:
layers.append(layer)
self.layers = layers
self.layers_by_depth = layers_by_depthhttps://stackoverflow.com/questions/47468723
复制相似问题