classify-samples.py 文件源码

python
阅读 28 收藏 0 点赞 0 评论 0

项目:have-fun-with-machine-learning 作者: humphd 项目源码 文件源码
def setup(self):
        mean_file = os.path.join(self.model_dir, 'mean.binaryproto')
        labels_file = os.path.join(self.model_dir, 'labels.txt')

        self.transformer = caffe.io.Transformer({'data': self.net.blobs['data'].data.shape})
        self.transformer.set_transpose('data', (2, 0, 1))
        self.transformer.set_raw_scale('data', 255)
        self.transformer.set_channel_swap('data', (2, 1, 0))

        # set mean pixel
        with open(mean_file, 'rb') as infile:
            blob = caffe_pb2.BlobProto()
            blob.MergeFromString(infile.read())
            if blob.HasField('shape'):
                blob_dims = blob.shape
                assert len(blob_dims) == 4, 'Shape should have 4 dimensions - shape is %s' % blob.shape
            elif blob.HasField('num') and blob.HasField('channels') and \
                    blob.HasField('height') and blob.HasField('width'):
                blob_dims = (blob.num, blob.channels, blob.height, blob.width)
            else:
                raise ValueError('blob does not provide shape or 4d dimensions')
            pixel = np.reshape(blob.data, blob_dims[1:]).mean(1).mean(1)
            self.transformer.set_mean('data', pixel)

        # This is overkill here, since we only have 2 labels, but here's how we might read them.
        # Later we'd grab the label we want based on position (e.g., 0=dolphin, 1=seahorse)
        self.labels = np.loadtxt(labels_file, str, delimiter='\n')
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号