caffe训练siamese network
来源:互联网 发布:淘宝知识产权投诉撤销 编辑:程序博客网 时间:2024/06/07 00:36
最近要用caffe训练siamese network,但是对c++并不熟,所有用了某博主的代码,和自己的图片数据,来训练siamese网络.
caffe中的siamese network用于train Mnist dataset,步骤如下:
1.准备数据
将图片分为train.txt, val.txt, test.txt, 通过编译caffe/tools/convert_imageset.cpp将图片转为leveldb格式.
编译:cd caffe/build; make clean; make all -j8
生成: caffe/build/tools/convert_imageset
执行: ./examples/mydata/create_mnist.sh;
生成: train和test set的leveldb格式, 分别是/examples/mydata/mnist_siamese_train_leveldb和/examples/mydata/mnist_siamese_test_leveldb
2.定义general model
/examples/mydata/mnist_siamese.prototxt中定义了siamese net的网络结构;与LeNet model相同,除了top layer.
3.定义detailed siamese network
/examples/mydata/mnist_siamese_train_test.prototxt.
注意修改source path.
3.1读pair data
3.2构建siamese net的first side数据和second side数据
/examples/mydata/mnist_siamese_train_test.prototxt.
3.3添加contrastive loss层
4.定义Solver
solver主要是指定model file的path.
/examples/mydata/mnist_siamese_solver.prototxt
训练和测试
定义好net protobuf和solver protobuf,就可以训练该net了.
执行: ./examples/mydata/train_mnist_siamese.sh
生成: /examples/mydata/mnist_siamese_iter_xx.caffemodel, mnist_siamese_iter_xx.solverstate
其中, caffemodel文件主要是存放各层的参数,即net.params(权重/filters),里面没有数据(net.blobs); 用于在测试阶段进行分类;
solverstate和caffemodel差不多,但是多一些数据,如模型名称,当前迭代次数等;用于恢复训练,防止意外终止而保存.绘制结果
6.1 画model和siamese network:
注释: general model,siamese net的一层数据网络,即CNN
./python/draw_net.py \
./examples/mydata/mnist_siamese.prototxt \
./examples/mydata/mnist_siamese.png
注释: detailed model, siamese net的完整结构图
./python/draw_net.py \
./examples/mydata/mnist_siamese_train_test.prototxt \
./examples/mydata/mnist_siamese_train_test.png
6.2 使用iPython notebook, load model并绘制features
(后续)
7.参考
caffe siamese tutorial: http://caffe.berkeleyvision.org/gathered/examples/siamese.html
博客园: http://www.cnblogs.com/denny402/p/5103425.html
- caffe训练siamese network
- caffe-siamese network
- Siamese Network Training with Caffe
- caffe初探之-caffe使用Siamese Network 训练网minst数据集
- caffe中的siamese network(一)
- caffe中的siamese network(二)
- Caffe 学习: tmux, vim, Anaconda, Caffe, Siamese network
- Siamese Network Training
- Siamese Network理解
- 训练一个Siamese网络
- caffe示例实现之8在MNIST数据上训练与测试siamese网络
- caffe siamese and ipython notebook
- Siamese Network理解(附代码)
- 用于文本相似的Siamese Network
- Siamese Network理解(附代码)
- Siamese Network理解(附代码)
- caffe siamese 网络 对比损失函数
- caffe siamese 网络 对比损失函数
- linux下简单的配置jdk方法
- Large Pool 错误
- 外币兑换
- tcpdump 抓 tcp 包
- 删除重复节点
- caffe训练siamese network
- 【leetcode】107. Binary Tree Level Order Traversal II
- python知识-python操作MySQL数据库
- Android活动的生命周期
- jmeter学习 十 jmeter ftp服务器连接
- String中的trim()方法
- javascript常用判断写法
- Eclipse中Android工程下布局文件无法正常预览
- 【技术支持】使用eclipse登陆oracle