caffe.NetSpec

2728 단어 Caffecaffe

전언


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의 정의를 배울 수 있습니다.
끝(^;^).

좋은 웹페이지 즐겨찾기