keras例子-matchnet
来源:互联网 发布:影响黄金价格的数据 编辑:程序博客网 时间:2024/06/10 00:37
2015CVPR:MatchNet_ Unifying Feature and Metric Learning for Patch-Based Matching
主要是基于patch的图像特征匹配,基于patch的论文有很多了,例如:
Learning to Compare Image Patches via Convolutional Neural Network(也是15年CVPR)
Image Patch Matching Using Convolutional Descriptors with Euclidean Distance
于是打算利用keras实现,但是没有利用这些论文都使用的benchmark data,即含有3个子set的patchdata:Multi-view Stereo Correspondence Dataset。
大体上说,这些文章的思路都是利用一对CNN来提取一对图像特征,然后通过欧氏距离(经典如Saimese网络)或者通过全连接网络(Matchnet)来实现特征的对比,最后通过交叉熵函数来完成优化。
论文很好懂,然后文中也有作者训练好的caffe模型,但是并没有训练过程,所以借此机会利用keras练练手。
先说遇到的问题,keras(0.8.2的theano和1.0.7的keras,目前最新大约是0.9的theano和2.0的keras)利用GPU时总是出现损失为NAN的情况,一开始以为是参数问题,所以修改了权重初始化和Dropout等网络结构,发现任然如下图:
而且当我跑keras自带的examples:mnist_cnn时竟然损失一路为NAN(笑哭/(ㄒoㄒ)/~~),我赶紧换成CPU跑了下,一切正常,正确率又飙到了99%多。我想是不是.theanoc.txt出了问题,我把optimizer=fast_compile删掉(PyCharm跑总是提醒内存问题。。PyCharm确实很占地儿,所以转战Spider),同时把device=gpu改成了gpu0.结果正常了。。如下图:
还没有进一步调参,一直被NAN所困。。而且网络也被我改得面目全非(因为只是测试数据量只有15000),和MatchNet作者的网络出入很大。但是基本思路都是CNN+全连接。。
增大了卷积核,loss下降到0.26,同时训练正确率也在90%以上:
将原数据的10%作为验证集:
再利用keras的模型可视化工具将模型结构可视化,方法见keras中文文档和博客:
from keras.utils.visualize_util import plotplot(model, to_file='model.png')
如图:
或者如果要在ipython中展示图片:
from IPython.display import SVGfrom keras.utils.visualize_util import model_to_dotSVG(model_to_dot(model).create(prog='dot', format='svg'))
效果和上图一样。
转自:http://www.cnblogs.com/king-lps/p/6697975.html
- keras例子-matchnet
- IMDB情感分析例子(keras)
- keras的一些例子理解
- keras的例子(入手)
- 深度学习Keras 库 跑例子
- 运行Keras例子程序:imdb_cnn.py
- 我的keras小例子及问题
- Keras学习(1)-识别手写体的例子
- Keras入门例子:cnn实现手写识别
- keras
- keras
- keras
- Keras
- keras
- Keras
- keras
- 在keras 上实践,通过keras例子来理解lastm循环神经网络
- [3]深度学习和Keras----Keras深度学习框架入门例子
- Hadoop+OpenCV的集群化图像处理开发环境建设与测试研究
- 巨磁阻效应分析与应用
- Meta标签中的apple-mobile-web-app-capable属性及含义
- idea修改tomcat启动的初始页面
- 让div在页面中间显示
- keras例子-matchnet
- hdu1711——Number Sequence(KMP求位置)
- HTML文档设置标记
- 基于 Quartz 开发企业级任务调度应用
- java 注解的使用
- IOS成长之路-使用系统默认声音、震动
- 模板模式
- 虚函数和纯虚函数的区别
- 在 Ubuntu 14.x 搭建 Nginx Uwsgi Django 环境之(二):Django 的安装