bugfix and made the C++ interface for creating leveldb

This commit is contained in:
Yangqing Jia 2013-10-27 10:11:23 -07:00
Родитель 0d752824e8
Коммит cf301543fb
6 изменённых файлов: 12 добавлений и 9 удалений

Просмотреть файл

@ -44,7 +44,7 @@ MKL_LIB_DIR := $(MKL_DIR)/lib $(MKL_DIR)/lib/intel64
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))

Просмотреть файл

@ -31,7 +31,7 @@ using std::stringstream;
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) {

Просмотреть файл

@ -53,7 +53,7 @@ int main(int argc, char** argv) {
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");

Просмотреть файл

@ -22,8 +22,7 @@ int main(int argc, char** argv) {
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.";
}

Просмотреть файл

@ -17,7 +17,9 @@ void BNLLLayer<Dtype>::Forward_cpu(const vector<Blob<Dtype>*>& bottom,
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]));
}
}
@ -43,7 +45,9 @@ template <typename Dtype>
__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]));
}
}

Просмотреть файл

@ -67,7 +67,7 @@ void WriteProtoToBinaryFile(const Message& proto, const char* filename) {
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);
@ -80,7 +80,7 @@ void ReadImageToDatum(const string& filename, const int label, Datum* datum) {
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]));
}
}
}