INCLUDE_DIRS := ./src ./include /u/vis/software/include /usr/local/include $(CUDA_INCLUDE_DIR) $(MKL_INCLUDE_DIR)
LIBRARY_DIRS := /usr/lib /u/vis/software/lib /usr/local/lib $(CUDA_LIB_DIR) $(MKL_LIB_DIR)
LIBRARIES := cudart cublas protobuf glog mkl_rt curand \
- leveldb snappy pthread
+ leveldb snappy pthread opencv_core opencv_highgui
WARNINGS := -Wall
COMMON_FLAGS := $(foreach includedir,$(INCLUDE_DIRS),-I$(includedir))
int main(int argc, char** argv) {
::google::InitGoogleLogging(argv[0]);
std::ifstream infile(argv[2]);
- vector<pair<string, int> > lines;
+ std::vector<std::pair<string, int> > lines;
string filename;
int label;
while (infile >> filename >> label) {
SolverParameter solver_param;
// Solver Parameters are hard-coded in this case, but you can write a
// SolverParameter protocol buffer to specify all these values.
- solver_param.set_base_lr(0.01);
+ solver_param.set_base_lr(0.001);
solver_param.set_display(100);
solver_param.set_max_iter(5000);
solver_param.set_lr_policy("inv");
leveldb::Iterator* it = db->NewIterator(read_options);
for (it->SeekToFirst(); it->Valid(); it->Next()) {
// just a dummy operation
- it->value().ToString();
- // LOG(ERROR) << it->key().ToString();
+ LOG(ERROR) << it->key().ToString();
if (++count % 10000 == 0) {
LOG(ERROR) << "Processed " << count << " files.";
}
Dtype* top_data = (*top)[0]->mutable_cpu_data();
const int count = bottom[0]->count();
for (int i = 0; i < count; ++i) {
- top_data[i] = log(1. + exp(min(bottom_data[i], Dtype(kBNLL_THRESHOLD))));
+ top_data[i] = bottom_data[i] > 0 ?
+ bottom_data[i] + log(1. + exp(-bottom_data[i])) :
+ log(1. + exp(bottom_data[i]));
}
}
__global__ void BNLLForward(const int n, const Dtype* in, Dtype* out) {
int index = threadIdx.x + blockIdx.x * blockDim.x;
if (index < n) {
- out[index] = log(1. + exp(min(in[index], Dtype(kBNLL_THRESHOLD))));
+ out[index] = in[index] > 0 ?
+ in[index] + log(1. + exp(-in[index])) :
+ log(1. + exp(in[index]));
}
}
void ReadImageToDatum(const string& filename, const int label, Datum* datum) {
- Mat cv_img;
+ cv::Mat cv_img;
cv_img = cv::imread(filename, CV_LOAD_IMAGE_COLOR);
CHECK(cv_img.data) << "Could not open or find the image.";
datum->set_channels(3);
for (int c = 0; c < 3; ++c) {
for (int h = 0; h < cv_img.rows; ++h) {
for (int w = 0; w < cv_img.cols; ++w) {
- datum_string->push_back(static_cast<char>(cv_img.at<Vec3b>(h, w)[c]));
+ datum_string->push_back(static_cast<char>(cv_img.at<cv::Vec3b>(h, w)[c]));
}
}
}