caffe Python API 之 数据输入层(Data,ImageData,HDF5Data)
import sys
sys.path.append('/projects/caffe-ssd/python')
import caffe
4 net = caffe.NetSpec()
一、ImageData Layer
net.data ,net.label = caffe.layers.ImageData(
name="InputData"
source="train.txt",
batch_size=32,
new_width=48,
new_height=48,
ntop=2,
is_color=True,
shuffle=True,
root_folder='/',
transform_param=dict(crop_size=40,mirror=True))
print str(net.to_proto()) 输出:
layer {
name: "InputData"
type: "ImageData"
top: "data"
top: "label"
transform_param {
mirror: true
crop_size: 40
}
image_data_param {
source: "train.txt"
batch_size: 32
shuffle: true
new_height: 48
new_width: 48
is_color: true
root_folder: "/"
}
}
二、Data Layer (lmdb/leveldb)
net.data, net.label = caffe.layers.Data(
name="InputData",
source="train_lmdb",
backend = caffe.params.Data.LMDB,
batch_size=32,
ntop=2,
include=dict(phase=caffe.TRAIN)
transform_param=dict(
crop_size=227,
mean_value=[104, 117, 123],
mirror=True
)
) 输出:
layer {
name: "InputData"
type: "Data"
top: "data"
top: "label"
transform_param {
mirror: true
crop_size: 227
mean_value: 104
mean_value: 117
mean_value: 123
}
data_param {
source: "train_lmdb"
batch_size: 32
backend: LMDB
}
}
三、HDF5Data Layer
net.data, net.label = caffe.layers.HDF5Data(
name="InputData",
source='./training_data_paths.txt',
batch_size=64,
include=dict(phase=caffe.TRAIN),
ntop=2
) 输出:
layer {
name: "InputData"
type: "HDF5Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
hdf5_data_param {
source: "./training_data_paths.txt"
batch_size: 64
}
} 另有:
image = L.HDF5Data(
hdf5_data_param={ 'source': './training_data_paths.txt', 'batch_size': 64 },
include={'phase': caffe.TRAIN }
)
caffe Python API 之 数据输入层(Data,ImageData,HDF5Data)的更多相关文章
- caffe添加自己的数据输入层
整体思路: 阅读caffe数据输入层各个类之间的继承关系,确定当前类需要继承的父类以及所需参数的设置. 编写zzq_data.cpp 在layer_factory.cpp中完成注册: 在caffe.p ...
- 【caffe I/O】数据读取层 代码中文注释
caffe.proto中DataParameter部分 message DataParameter { //输入数据使用的DB类型 enum DB { LEVELDB = ;//使用LEVELDB L ...
- caffe Python API 之卷积层(Convolution)
1.Convolution层: 就是卷积层,是卷积神经网络(CNN)的核心层. 层类型:Convolution lr_mult: 学习率的系数,最终的学习率是这个数乘以solver.prototxt配 ...
- caffe Python API 之上卷积层(Deconvolution)
对于convolution: output = (input + 2 * p - k) / s + 1; 对于deconvolution: output = (input - 1) * s + k ...
- caffe Python API 之可视化
一.显示各层 # params显示:layer名,w,b for layer_name, param in net.params.items(): print layer_name + '\t' + ...
- caffe Python API 之图片预处理
# 设定图片的shape格式为网络data层格式 transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape}) ...
- caffe Python API 之激活函数ReLU
import sys import os sys.path.append("/projects/caffe-ssd/python") import caffe net = caff ...
- caffe Python API 之Inference
#以SSD的检测测试为例 def detetion(image_dir,weight,deploy,resolution=300): caffe.set_mode_gpu() net = caffe. ...
- caffe Python API 之中值转换
# 编写一个函数,将二进制的均值转换为python的均值 def convert_mean(binMean,npyMean): blob = caffe.proto.caffe_pb2.BlobPro ...
随机推荐
- 【bzoj1708】[USACO2007 Oct]Money奶牛的硬币 背包dp
题目描述 在创立了她们自己的政权之后,奶牛们决定推广新的货币系统.在强烈的叛逆心理的驱使下,她们准备使用奇怪的面值.在传统的货币系统中,硬币的面值通常是1,5,10,20或25,50,以及100单位的 ...
- 基于jquery的移动端JS无缝切换
Html: <div id="slide-box-1"> <ul> <li> <a href="javascript:void( ...
- oracle行转列函数WMSYS.WM_CONCAT 用法
1.通过 10g 所提供的 WMSYS.WM_CONCAT 函数即可以完成 行转列的效果 select group_code, wm_concat(display_title) from DR_OPM ...
- 51nod 1962 区间计数(单调栈+二分)
维护两个单调递减的栈,当i加进栈,位置x的数弹出的时候,在另一个栈中找到和这个数一样大的数,计算贡献(x-靠右左端点)*(i-x). #include<iostream> #include ...
- bzoj1483: [HNOI2009]梦幻布丁(链表+启发式合并)
题目大意:一个序列,两种操作. ①把其中的一种数修改成另一种数 ②询问有多少段不同的数如1 2 2 1为3段(1 / 2 2 / 1). 昨晚的BC的C题和这题很类似,于是现学现写居然过了十分开心. ...
- 遇见Flask-Script
Flask-Script是Flask的命令行扩展包,使用它可以通过命令行的形式操作Flask项目, 例如,可通过命令启动一个发版本的服务器,设置数据库和定时任务等. 类似Django的manage.p ...
- 页面元素的CSS渲染优先级
样式的优先级 多重样式(Multiple Styles):如果外部样式.内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况. 一般情况下,优先级如下:(外部样式)External style ...
- rand、randi和randn的区别?
1,rand 生成均匀分布的伪随机数.分布在(0~1)之间 主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数 rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数还可 ...
- HDU 1045 dfs
Fire Net Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- 2015/9/10 Python基础(11):错误和异常
程序在执行的过程中会产生异常,出现错误在以前的一个时期是致命的,后来随着程序的发展,使得一些错误的处理方式是柔和的,发生错误会产生一些错误的诊断信息和一些模糊的提示.帮助我们来处理异常.今天将学习Py ...