const char* Application::GetResourceRoot () { if (!resource_root) { char *buf = g_build_filename (Runtime::GetWindowingSystem ()->GetTemporaryFolder (), "moonlight-app.XXXXXX", NULL); // create a root temp directory for all files if (!(resource_root = MakeTempDir (buf))) g_free (buf); Deployment::GetCurrent()->TrackPath (resource_root); } return resource_root; }
const char * HttpHandler::GetDownloadDir () { if (download_dir == NULL) { char *buf = g_build_filename (g_get_tmp_dir (), "moonlight-downloads.XXXXXX", NULL); // create a root temp directory for all files download_dir = MakeTempDir (buf); if (download_dir == NULL) { g_free (buf); printf ("Moonlight: Could not create temporary download directory.\n"); } else { GetDeployment ()->TrackPath (download_dir); LOG_DOWNLOADER ("HttpHandler::GetDownloadDir (): Created temporary download directory: %s\n", download_dir); } } return download_dir; }
TYPED_TEST(LayerFactoryTest, TestCreateLayer) { typedef typename TypeParam::Dtype Dtype; typename LayerRegistry<Dtype>::CreatorRegistry& registry = LayerRegistry<Dtype>::Registry(); shared_ptr<Layer<Dtype> > layer; for (typename LayerRegistry<Dtype>::CreatorRegistry::iterator iter = registry.begin(); iter != registry.end(); ++iter) { // Special case: PythonLayer is checked by pytest if (iter->first == "Python") { continue; } LayerParameter layer_param; // Data layers expect a DB if (iter->first == "Data") { string tmp; MakeTempDir(&tmp); boost::scoped_ptr<db::DB> db(db::GetDB(DataParameter_DB_LEVELDB)); db->Open(tmp, db::NEW); db->Close(); layer_param.mutable_data_param()->set_source(tmp); } layer_param.set_type(iter->first); layer = LayerRegistry<Dtype>::CreateLayer(layer_param); EXPECT_EQ(iter->first, layer->type()); } }
string RunLeastSquaresSolver(const Dtype learning_rate, const Dtype weight_decay, const Dtype momentum, const int num_iters, const int iter_size = 1, const bool snapshot = false, const char* from_snapshot = NULL) { ostringstream proto; proto << "snapshot_after_train: " << snapshot << " " "max_iter: " << num_iters << " " "base_lr: " << learning_rate << " " "lr_policy: 'fixed' " "iter_size: " << iter_size << " " "net_param { " " name: 'TestNetwork' " " layer { " " name: 'data' " " type: 'HDF5Data' " " hdf5_data_param { " " source: '" << *(this->input_file_) << "' " " batch_size: " << num_ / iter_size << " " " } " " top: 'data' " " top: 'targets' " " } "; if (share_) { proto << " layer { " " name: 'slice' " " type: 'Slice' " " bottom: 'data' " " top: 'data1' " " top: 'data2' " " slice_param { " " axis: 0 " " } " " } "; } proto << " layer { " " name: 'innerprod' " " type: 'InnerProduct' " " param { name: 'weights' } " " param { name: 'bias' } " " inner_product_param { " " num_output: 1 " " weight_filler { " " type: 'gaussian' " " std: 1.0 " " } " " bias_filler { " " type: 'gaussian' " " std: 1.0 " " } " " } " " bottom: '" << string(share_ ? "data1": "data") << "' " " top: '" << string(share_ ? "innerprod1": "innerprod") << "' " " } "; if (share_) { proto << " layer { " " name: 'innerprod2' " " type: 'InnerProduct' " " param { name: 'weights' } " " param { name: 'bias' } " " inner_product_param { " " num_output: 1 " " weight_filler { " " type: 'gaussian' " " std: 1.0 " " } " " bias_filler { " " type: 'gaussian' " " std: 1.0 " " } " " } " " bottom: 'data2' " " top: 'innerprod2' " " } " " layer { " " name: 'concat' " " type: 'Concat' " " bottom: 'innerprod1' " " bottom: 'innerprod2' " " top: 'innerprod' " " concat_param { " " axis: 0 " " } " " } "; } proto << " layer { " " name: 'loss' " " type: 'EuclideanLoss' " " bottom: 'innerprod' " " bottom: 'targets' " " } " "} "; if (weight_decay != 0) { proto << "weight_decay: " << weight_decay << " "; } if (momentum != 0) { proto << "momentum: " << momentum << " "; } MakeTempDir(&snapshot_prefix_); proto << "snapshot_prefix: '" << snapshot_prefix_ << "/' "; if (snapshot) { proto << "snapshot: " << num_iters << " "; } Caffe::set_random_seed(this->seed_); this->InitSolverFromProtoString(proto.str()); if (from_snapshot != NULL) { this->solver_->Restore(from_snapshot); vector<Blob<Dtype>*> empty_bottom_vec; for (int i = 0; i < this->solver_->iter(); ++i) { this->solver_->net()->Forward(empty_bottom_vec); } } this->solver_->Solve(); if (snapshot) { ostringstream resume_file; resume_file << snapshot_prefix_ << "/_iter_" << num_iters << ".solverstate"; string resume_filename = resume_file.str(); return resume_filename; } return string(); }