[問題] deep learning caffemodel分類
開發平台(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());
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.233.73.70
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1456314628.A.C3A.html
→
02/24 21:37, , 1F
02/24 21:37, 1F
→
02/24 21:38, , 2F
02/24 21:38, 2F
→
03/04 22:24, , 3F
03/04 22:24, 3F
→
03/04 22:25, , 4F
03/04 22:25, 4F
→
03/04 22:25, , 5F
03/04 22:25, 5F
→
03/07 21:39, , 6F
03/07 21:39, 6F
→
03/07 21:40, , 7F
03/07 21:40, 7F
→
03/07 21:41, , 8F
03/07 21:41, 8F
→
03/07 21:41, , 9F
03/07 21:41, 9F
→
03/15 12:34, , 10F
03/15 12:34, 10F
→
03/15 12:35, , 11F
03/15 12:35, 11F
→
03/15 12:36, , 12F
03/15 12:36, 12F
→
03/15 12:38, , 13F
03/15 12:38, 13F
→
03/15 12:38, , 14F
03/15 12:38, 14F