caffe源码解析—image_data_layer层
生活随笔
收集整理的這篇文章主要介紹了
caffe源码解析—image_data_layer层
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
caffe data layer相關層的繼承結構
?
image-data-layer層關鍵代碼注釋
?DataLayerSetUp函數
//將imagelist中的圖片以 image+label格式 讀入到 vector<pair<image,label>> lines_ 中 while (std::getline(infile, line)) {pos = line.find_last_of(' ');label = atoi(line.substr(pos + 1).c_str());lines_.push_back(std::make_pair(line.substr(0, pos), label));}shuffle函數
template <typename Dtype> void ImageDataLayer<Dtype>::ShuffleImages() {caffe::rng_t* prefetch_rng =static_cast<caffe::rng_t*>(prefetch_rng_->generator());shuffle(lines_.begin(), lines_.end(), prefetch_rng); }load_batch函數
prefetch_label[item_id] = lines_[lines_id_].second;// go to the next iterlines_id_++;//lines_id_ 全局變量,記錄當前的index圖片索引,如果索引大于epoch,則置0,從頭開始,//每個epoch shuffle一次if (lines_id_ >= lines_size) {// We have reached the end. Restart from the first.DLOG(INFO) << "Restarting data prefetching from start.";lines_id_ = 0;if (this->layer_param_.image_data_param().shuffle()) {ShuffleImages();}}?
總結
以上是生活随笔為你收集整理的caffe源码解析—image_data_layer层的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: caffe训练输入数据格式介绍(LMDB
- 下一篇: 深入理解BN、合并conv+BN公式推导