|
|
#include <vector> |
|
|
|
|
|
#include "caffe/layers/base_data_layer.hpp" |
|
|
|
|
|
namespace caffe { |
|
|
|
|
|
template <typename Dtype> |
|
|
void BasePrefetchingDataLayer<Dtype>::Forward_gpu( |
|
|
const vector<Blob<Dtype>*>& bottom, const vector<Blob<Dtype>*>& top) { |
|
|
if (prefetch_current_) { |
|
|
prefetch_free_.push(prefetch_current_); |
|
|
} |
|
|
prefetch_current_ = prefetch_full_.pop("Waiting for data"); |
|
|
|
|
|
top[0]->ReshapeLike(prefetch_current_->data_); |
|
|
top[0]->set_gpu_data(prefetch_current_->data_.mutable_gpu_data()); |
|
|
if (this->output_labels_) { |
|
|
|
|
|
top[1]->ReshapeLike(prefetch_current_->label_); |
|
|
top[1]->set_gpu_data(prefetch_current_->label_.mutable_gpu_data()); |
|
|
} |
|
|
} |
|
|
|
|
|
INSTANTIATE_LAYER_GPU_FORWARD(BasePrefetchingDataLayer); |
|
|
|
|
|
} |
|
|
|