caffe.NetSpec
来源:互联网 发布:淘宝怎么发布微淘广播 编辑:程序博客网 时间:2024/06/04 19:34
前言
caffe NetSpec类
正文
caffe.NetSpec 是定义在caffe/net_spec.py 中的类,其代码如下:
class NetSpec(object): """A NetSpec contains a set of Tops (assigned directly as attributes). Calling NetSpec.to_proto generates a NetParameter containing all of the layers needed to produce all of the assigned Tops, using the assigned names. """ def __init__(self): super(NetSpec, self).__setattr__('tops', OrderedDict()) def __setattr__(self, name, value): self.tops[name] = value def __getattr__(self, name): return self.tops[name] def __setitem__(self, key, value): self.__setattr__(key, value) def __getitem__(self, item): return self.__getattr__(item) def to_proto(self): names = {v: k for k, v in six.iteritems(self.tops)} autonames = Counter() layers = OrderedDict() for name, top in six.iteritems(self.tops): top._to_proto(layers, names, autonames) net = caffe_pb2.NetParameter() net.layer.extend(layers.values()) return net
代码中注释解释:
NetSpec 是包含Tops(可以直接赋值作为属性)的集合。调用 NetSpec.to_proto 创建包含所有层(layers)的网络参数,这些层(layers)需要被赋值,并使用被赋值的名字。
使用:
n=caffe.NetSpec() 是获取Caffe的一个Net,我们只需不断的填充这个n,最后面把n输出到文件就会使我们在Caffe学习里面看到的Net的protobuf的定义。
完(^▽^)。
阅读全文