[問題] 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