siamese训练完了,如何测试,如何看效果呢

经过几天的爬坑,终于处理好数据,可以跑起siamese网络了,当然,为避免slice的麻烦,改写了网络
666.jpg

两个data层输入,其中一个第二次top就是标签(0代表同一类,1代表不同类,当然了,train1和2的txt我都是按照同一随机序列打乱的,不然对应不上,转leveldb的时候也要注意不是打乱)
然后,很不容易的拿到了514人的10000多正样本对,本着1比2的正负样本对比例,创造完之后,我的训练集30000正负样本对,验证集10000样本对,还有2000多的零头打算做测试集。
那么问题来了:
1.caffemodel训练好了该如何用?
2.原siamese网络没有accuracy层,只有loss层,需要自己写一个么?
3.如果我想输入一张图片判断是哪一类的,应该怎么做呢?
4.这样的网络训练完了,top1,top5,top10,top20要怎么测出来呢

附上刚出炉的一张貌似严重过拟合的训练结果loss图

xj201608091548_gray_inner514.jpg


谢谢大神!!!
已邀请:

smu_wangbo - 误入人工智能进行深度学习的电气小硕

赞同来自: caffe

准备好你的model,把二进制均值文件binaryproto转换为.npy类型文件,找到你的网络架构文件类似*_deploy.prototxt  (没有的话可以自己照着写一个),准备一个待测样本;上面都准备好了吗?然后找到~/caffe/python/classify.py 文件打开  修改各值即可,然后写一个脚本就行。或者可以自己写一个classify.py文件,然后直接执行就可以了。可以参考我的http://blog.csdn.net/wangbo792450190/article/details/52583749  我自己就是这样弄得,不当之处咱们再讨论。

sodaCF

赞同来自:

您好!不好意思我解决不了您的问题,但很想请教您一个问题。请问怎么把自己的数据转换为siamese需要的数据格式呢?

alex68 - 一般不扯淡~

赞同来自:

1. 如果做人脸验证,一个网络输入模板人的图片,另一个输入实拍的图片;
2. 可以自己加;
3. 每个网络应该有一个loss是做分类的,也就是多任务,这样在做分类的时候只用其中一个网络就可以了;
4. accuracy中有设置
layer { 
name: "accuracy_top_5" 
type: "Accuracy" 
bottom: "fc8" 
bottom: "label" 
top: "accuracy_top_5" 
accuracy_param { 
   top_k: 5 

include { phase: TEST } 
}

月光里的阳光ysu

赞同来自:

您好,我看您的网络图好像有两个单独的输入,是这样吗?

zhanghong2 - It屌丝苦逼程序猿

赞同来自:

这个你是要写deploy文件吗

gybheroin - 90后研究僧

赞同来自:

你好,我也做了一个两层输入的网络,我想请问你输入的数据是怎么定义的,我不太清楚如何准备pair的数据。

要回复问题请先登录注册