for i, e in enumerate(last_layer): layer_in = e(layer_in) if i == 4: out_branch = layer_in return layer_in, out_branch
for i, e in enumerate(last_layer):
layer_in = e(layer_in)
if i == 4:
out_branch = layer_in
return layer_in, out_branch
代码是这样的,你要搞清楚代码的变量代表什么,数据类型是什么
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标
enumerate函数是返回下标和值,先下标后值, 你这第二句,是索引元素的第 layer_in+1 个内容再复制给layer_in,如果都是数字,那可以循环,单数数字不合理,会出现索引越界问题。如果不是数字,那就会出错了。 第三句意思就是当 i等于4 ,也就是 last_layer 的第五个元素拿出来,在索引这个拿出来的第五个元素给layer_in,然后再赋值给out_branch, 最后返回这两个,是一抹样的。为啥要返回俩呢。你这个程序真乱。