Caffe学习笔记(1)--Python接口

前言

使用caffe也有一小段时间了,但是对于caffe的python接口总是一知半解,最近终于能静下心来,仔细阅读了caffe官方例程,并写下此博客。博文主要对caffe自带的分类例程00-classification.ipynb做了详细的注释,相信能加强这方面的理解。

准备工作

加载必要的库

import numpy as np # 加载numpy
import matplotlib.pyplot as plt # 加载matplotlib
%matplotlib inline # 此处是为了能在notebook中直接显示图像

# rcParams是一个包含各种参数的字典结构,含有多个key-value,可修改其中部分值
plt.rcParams['figure.figsize'] = (10, 10) # 图像显示大小,单位是英寸 
plt.rcParams['image.interpolation'] = 'nearest'  # 最近邻差值,像素为正方形
plt.rcParams['image.cmap'] = 'gray'  # 使用灰度输出而不是彩色输出

加载caffe

import sys
caffe_root = '../'  # caffe根目录,此处为相对路径,如果失灵,可换成绝对路径

# sys.path是一个列表,insert()函数插入一行,也可以使用sys.path.append('模块地址')
sys.path.insert(0, caffe_root + 'python') # 加载caffe的python模块
import caffe # 加载caffe
import os

# 如果该路径下存在caffemodel文件,则打印信息,否则从官网下载
if os.path.isfile(caffe_root + 'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'):
    print 'CaffeNet found.'
else:
    print 'Downloading pre-trained CaffeNet model...'
    !../scripts/download_model_binary.py ../models/bvlc_reference_caffenet

加载网络以及输入预处理

设置cpu模式以及从硬盘加载网络

caffe.set_mode_cpu() # 设置caffe为cpu模式,也可设成gpu模式
model_def = caffe_root + 'models/bvlc_reference_caffenet/deploy.prototxt' 
model_weights = caffe_root + 'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'

net = caffe.Net(model_def,      # 定义模型结构 
                model_weights,  # 包含模型训练权重
                caffe.TEST)     # 使用测试模式(训练中不能执行dropout)

图像预处理

# 加载ImageNet训练集的图像均值,预处理需要减去均值
# ilsvrc_2012_mean.npy文件是numpy格式,其数据维度是(3L, 256L, 256L)
mu = np.load(caffe_root + 'python/caffe/imagenet/ilsvrc_2012_mean.npy') # 加载均值文件
mu = mu.mean(1).mean(1)  # 对所有像素值取平均以此获取BGR的均值像素值
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值