caffe Layers相关的API
来源:互联网 发布:360云盘程序员 编辑:程序博客网 时间:2024/06/03 22:38
导入需要用到的模块,layer和params
import caffe
from caffe import layers as L
from caffe inport params as P
1. 数据层:
import caffe
from caffe import layers as L
from caffe inport params as P
1. 数据层:
作为每一个模型的最底层,caffe可以读取不同格式的数据,包括lmdb,leveldb,HDF5,原始图片,还可以直接自己定义输入格式
(1). lmdb/leveldb 格式的数据层定义L.Data(sourec = path // 数据库的路径(必要参数)backend = P.Data.LMDB // 指定数据库的格式(必要参数)batch_size = batch_size // 深度学习都是按照批次来优化求解的,批大小。(必要参数)ntop = 2 // 输出的blob的个数,两个是指数据和标签(必要参数)transfrom_param = dict( // 预处理的参数crop_size = 64 // 对样本裁剪的大小scale = 1 // 对样本进行缩放,乘上scalemean_file = meanfile_path // 常用预处理方法,减去均值mean_value = [104,110,123] // 支持值和均值文件,任选其一mirror = True // 是否随机对图像进行随机的反转))(2). HDF5 格式的数据层的定义L.HDF5Data(source = path // 数据的路径(必要参数)batch_size = batch_size // 批处理大小(必要参数)shuffle = false // 是否将样本随机打乱顺序)(3). ImageData 格式的数据层的定义每张图片的名称作为一行,记录到txt文件中L.ImageData(source = list_path // 数据的路径(必要参数)batch_size = batch_size // 批处理大小(必要参数)new_width = 64 // 相当于reshapenew_height = 64 // 相当于reshapentop = 2 // 输出的blob的个数,两个是指数据和标签(必要参数)shuffle = false // 是否将样本随机打乱顺序transform_param = dict(crop_size = 64 // 对样本裁剪的大小scale = 1 // 对样本进行缩放,乘上scalemean_file = meanfile_path // 常用预处理方法,减去均值mirror = True // 是否随机对图像进行随机的反转))(4).重写数据读取L.Python(module = "read_data" // 重写程序所在文件名称layer = "input_layer" // 重写的类名ntop = 2 // 输出的blob的个数para_str = str(dict( // 重写的程序需要传入的参数split = "train" // 标注处理训练样本还是测试样本data_dir = path // 数据的路径train_data_name = “traindataname” // 训练样本的名字test_data_name = "testdataname" // 测试样本的名字........... // 其他程序需要用的参数))2. 卷积层的定义L.Convolution(bottom = bottom // 输入的blobnum_output = // 输出的blob的个数bias_term = true // 模型是否包含偏置项默认为truepad = 0 // 是否对样本进行扩展,为了保持维度不变,默认为0kernel_size = 3 // 卷积核的大小stride = 1 // 卷积的步长,默认为1pad_h = 0 // 扩展的高度,默认为0,不可与pad同时存在pad_w = 0 // 扩展的宽度,默认为0,不可与pad同时存在kernel_h = 0 // 卷积核的高度,用于非正方形卷积核,与kernel_size不可同时存在kernel_w = 0 // 卷积核的宽度,用于非正方形卷积核,与kernel_size不可同时存在stride_h = 0 // 纵向步长,不可与stride同时存在stride_w = 0 // 横向步长,不可与stride同时存在weight_filler = dict(type = 'xavier') // 权重的填充bias_filler = dict(type = 'constant') // 偏置的填充)3. 激活层的定义--reluL.RELU(bottom = bottom // 输入的blobnegative_slope = 0 // 如果负数则输出negative_slope,默认为0,基本版本in_palce = true // 用输出blob替换输入blob,可以节省内存,默认为true)4. Pooling层的定义L.Pooling(bottom = bottom // 输入的blobpool=P.Pooling.MAX // pooling方式,包括MAX,AVE,STOCHASTICpad = 0 // 扩展输入的数据,默认为0pad_h = 0 // 扩展输入数据的高,不可与pad同时存在pad_w = 0 // 扩展输入数据的宽,不可与pad同时存在kernel_size = 2; // pooling核的大小kernel_h = 0; // pooling核的高,不可和kernel_size同时存在kernel_w = 0; // pooling核的宽,不可和kernel_size同时存在stride = 1 // pooling的步长stride_h = 1; // pooling纵向的步长,不可和stride同时存在stride_w = 1; // pooling横向的步长,不可和stride同时存在global_pooling = false // 全局pooling,即整个feature map pooling出一个值)
5. FullConnect层的定义L.InnerProduct( bottom = bottom // 输入的blobnum_output = nout // 输出神经元的个数bias_term = true // 是否有偏置项weight_filler = dict(type = 'xavier') // 权重的填充bias_filler = dict(type = 'constant') // 偏置的填充)6. Dropout层的定义L.Dropout( bottom = bottom // 输入的blobdropout_ratio = 0.5 // 按照1-ratio的概率置零 in_place=True // 直接替换blob)7. Loss层的定义L.SoftmaxWithLoss( bottom = bottom // 输入的blob label = label // 标签)8. Accuracy层的定义L.Accuracy( bottom = bottom // 输入的blob label = label // 标签)
0 0
- caffe Layers相关的API
- caffe相关--Layers
- caffe的layers转layer
- caffe layers
- CAFFE layers
- Caffe Layers
- Caffe Layers
- caffe各个层layer的区别和介绍 Vision Layers,Data Layers, Common Layers--caffe学习(9)
- caffe 相关--Blobs, Layers, and Nets: anatomy of a Caffe model
- Caffe学习:Layers
- Notes on Caffe layers
- CAFFE: Developing new layers
- 添加caffe layers
- Caffe学习:Layers
- caffe中的layers
- Caffe学习:Layers
- Caffe学习:Layers
- Caffe学习:Layers
- Spring(一)——总体介绍
- 项目时间管理
- 51Nod 1267 4个数和为0
- Toolbar的封装及使用
- [JZOJ4921] 幻魔皇
- caffe Layers相关的API
- Spring(二)——IoC
- 查看linux版本信息和内核信息
- 综合算法05—考虑换乘的K短路算法
- LeetCode 007 ReverseInteger
- Spring(三)——AOP
- 【多线程】1、创建线程的两种方法
- ios 使用ELCImagePicker实现相册照片多选和真机拍照调试
- 1000以内所有回文数