[问题] deep learning caffemodel分类

楼主: s501082001 (曹草逼)   2016-02-24 19:50:25
开发平台(Platform): Ubuntu 14.04 QT Creator C++
问题:deep learning 用训练好的caffemodel分类
参考网站:http://www.cnblogs.com/waring/p/4471183.html
补充说明:
想请问目前我用caffe的程式有将caffemodel训练出来,然后目前希望可以利用训练
好的model来做影像的分类,然后我有找到底下的程式代码来做,但是在阅读的部分有
困难,想请问是否有人可以给我一些方向,想拜托各位高手,这部分有困扰了一段时间
如果问题阐述不好,再麻烦各位跟我说,谢谢大家。
底下是我想用来做影像分类的程式码,上述有参考的网站
程式码(Code):
void Classifier<Dtype>::predict(vector<Mat> &images, vector<int> *labels)
{
int original_length = images.size();
if(original_length == 0)
return;
int valid_length = original_length / batch_size_ * batch_size_;
if(original_length != valid_length)
{
valid_length += batch_size_;
for(int i = original_length; i < valid_length; i++)
{
images.push_back(images[0].clone());
}
}
vector<int> valid_labels, predicted_labels;
valid_labels.resize(valid_length, 0);
m_layer_->AddMatVector(images, valid_labels);
vector<Blob<Dtype>* > bottom_vec;
for(int i = 0; i < valid_length / batch_size_; i++)
{
const vector<Blob<Dtype>*>& result = net_->Forward(bottom_vec);
const Dtype * result_vec = result[1]->cpu_data();
for(int j = 0; j < result[1]->count(); j++)
{
predicted_labels.push_back(result_vec[j]);
}
}
if(original_length != valid_length)
{
images.erase(images.begin()+original_length, images.end());
}
labels->resize(original_length, 0);
std::copy(predicted_labels.begin(), predicted_labels.begin() +
original_length, labels->begin());
}
楼主: s501082001 (曹草逼)   2016-02-24 21:37:00
想请问是否我问的方式有问题或是问题打得太琐碎,如果是我再说明清楚
作者: longlongint (华哥尔)   2016-03-04 22:24:00
因为 caffee 跟 deep learning 太难了我不会建议可以发到专门的论坛 然后把你不懂的点讲得更明确一些
楼主: s501082001 (曹草逼)   2016-03-07 21:39:00
to longlogint 谢谢您的回复因为我有在github网站跟stackoverflow询问但可能打的问题还是不够详尽,所以没人回复所以来这边询问
作者: longlongint (华哥尔)   2016-03-15 12:34:00
可以写一下你怎么看这段code因为不知道你是数学不懂 还是C++不懂 还是stl不懂我自己是因为不懂caffe所以不能回你XD这段code前面在处理输入格式 中间做forward 最后在处理输出格式

Links booklink

Contact Us: admin [ a t ] ucptt.com