
caffe
文章平均质量分 62
leibaojiangjun1
这个作者很懒,什么都没留下…
展开
-
caffe基本数据结构---blob
Caffe使用blob存储、交换、操纵这些信息。blob是整个框架的标准的数组结构和统一存储接口。Blob是Caffe处理和传输的真实数据的包装类,同时它还隐含提供了在CPU和GPU之间同步数据的能力。在数学上,一个blob就是一个4维的数组,它是按照c语言风格存储的,即行优先。由于我们经常对blob的值和梯度感兴趣,所以blob存储了2块data和diff.前者是正常的传输数据,后者是网络计原创 2016-12-12 19:47:41 · 6210 阅读 · 0 评论 -
在caffe中固定某些网络参数,只训练某些层
实现的关键变量是:propagate_down 含义:表示当前层的梯度是否向前传播比如有4个全连接层A->B->C->D a. 你希望C层的参数不会改变,C前面的AB层的参数也不会改变,这种情况也就是D层的梯度不往前反向传播到D层的输入blob(也就是C层的输出blob 没有得到梯度),你可以通过设置D层的propagate_down为false来做到。 prop原创 2016-12-14 10:37:30 · 9242 阅读 · 0 评论 -
如何生成Solver配置文件---caffe
from caffe.proto import caffe_pb2s = caffe_pb2.SolverParameter()path='/home/xxx/data/'solver_file=path+'solver.prototxt' # solver文件保存位置s.train_net = path+'train.prototxt' # 训练配置文件s.tes原创 2016-12-12 21:09:15 · 1156 阅读 · 0 评论 -
用训练好的caffe模型来测试样本
如果要把训练好的模型拿来测试新的样本,那必须得要一个deploy.prototxt文件,这个文件实际上和test.prototxt文件差不多,只是头尾不相同而已。deploy文件没有第一层数据输入层,样本是被直接输入到net.blobs里面的,也没有最后的Accuracy层,但最后多了一个Softmax概率层。import numpy as np import sys,os # 设置当转载 2016-12-14 10:26:41 · 4346 阅读 · 0 评论 -
caffe训练过程中的可视化
import matplotlib.pyplot as plt import caffe caffe.set_device(0) caffe.set_mode_gpu() # 使用SGDSolver,即随机梯度下降算法 solver = caffe.SGDSolver('/home/xxx/mnist/solver.prototxt') # 等价于solver文件转载 2016-12-13 10:34:55 · 2123 阅读 · 0 评论 -
查看caffe模型的参数
1. 训练模型的参数solver = caffe.SGDSolver(str(solver_path))for name,blob in solver.net.blobs,items() # 网络中的数据,blobs是一个字典 print name + ": " + str(blob.data.shape) # blob是Blob的类对象 for n原创 2016-12-13 10:14:26 · 1836 阅读 · 0 评论 -
使用caffe训练并且测试一个自己的模型
配置文件制作完毕,训练一个自己的模型将变得非常简单:solver_path = '/home/xxx/data/solver.prototxt' caffe.set_device(gpu_id) # 若不设置,默认为0caffe.set_mode_gpu() # 设置计算模式为GPU计算solver = caffe.SGDSolver(solver_path) # 加载S原创 2016-12-12 21:31:09 · 2629 阅读 · 0 评论 -
如何编写训练测试的prototxt配置文件---以Resnet为例
import osos.chdir('/home/wuwl/ResNet')import init_pathimport caffeimport numpy as npimport toolsfrom caffe import layers as L,params as P,to_protothis_dir = os.path.abspath(".")def ResNet(spl原创 2016-12-12 21:27:06 · 2232 阅读 · 0 评论 -
caffe Layers相关的API
导入需要用到的模块,layer和paramsimport caffefrom caffe import layers as Lfrom caffe inport params as P1. 数据层:作为每一个模型的最底层,caffe可以读取不同格式的数据,包括lmdb,leveldb,HDF5,原始图片,还可以直接自己定义输入格式(1). lmdb/leveldb 格式的数原创 2016-12-12 20:00:21 · 756 阅读 · 0 评论 -
HDF5在python上的使用
h5接受的数据是矩阵跟mat方法一致,但是具有更强的压缩性能使用hdf5依赖于python的工具包:h5pyimport h5py #导入工具包import numpy as np#HDF5的写入:imgData = np.zeros((30,3,128,256))f = h5py.File('HDF5_FILE.h5','w') #创建一个h5文件,文件指针是ff['da原创 2016-12-14 10:34:51 · 42974 阅读 · 2 评论