Bagger::Bagger(){ m_CalcOutOfBag = false; _computeImportances = true; m_chooseTree = MutexPtr(new boost::mutex); m_chooseVote = MutexPtr(new boost::mutex); m_BagSizePercent = 100; }
ServerSocket::ServerSocket(int port) { service_port = port; finishedMutex = MutexPtr(new std::mutex()); socket = UdpSocketPtr(new sf::UdpSocket()); socket->setBlocking(false); finished = false; }
MainFramework::MainFramework(GraphicsManagerPtr gmgr, GUIManagerPtr guimgr):m_endParsing(false){ m_rManager = ResourceManagerPtr(new ResourceManager); m_gManager = gmgr; m_guiManager = guimgr; m_messageStackMutex = MutexPtr(new boost::mutex); m_parseCondition = ConditionPtr(new boost::condition_variable); m_minerGUI = MinerGUIPtr(new MinerGUI(m_guiManager)); //m_GPUManagers["DirectX"] = GraphicsManagerPtr(new DirectXManager); m_GPUManagers["CUDA"] = GraphicsManagerPtr(new CUDAManager); //m_GPUManagers["OpenCL"] = GraphicsManagerPtr(new OpenCLManager); }
/** @brief Create a new mutex * * See @ref s4u_raii. */ MutexPtr Mutex::createMutex() { smx_mutex_t mutex = simcall_mutex_init(); return MutexPtr(&mutex->mutex(), false); }
void MultitouchInputDevice::start() { m_pMutex = MutexPtr(new boost::mutex); }
void ExRandomTrees::run(){ std::string setting = m_data->m_gui->getEditText(IDC_RANDFOREST_NUMFEATURES); try{ m_numFeatures = boost::lexical_cast<int,std::string>(setting); } catch(...){ m_numFeatures = (int)log((float)m_document->getNumAttributes())+1; } if(m_numFeatures == 0) m_numFeatures = (int)log((float)m_document->getNumAttributes())+1; setting = m_data->m_gui->getEditText(IDC_RANDFOREST_NUMTREES); try{ m_numTrees = boost::lexical_cast<int,std::string>(setting); } catch(...){ m_numTrees = 10; } setting = m_data->m_gui->getEditText(IDC_RANDFOREST_TREEDEPTH); try{ m_maxDepth = boost::lexical_cast<int,std::string>(setting); } catch(...){ m_maxDepth = 100; } setting = m_data->m_gui->getEditText(IDC_RANDFOREST_SEED); try{ m_randomSeed = boost::lexical_cast<int,std::string>(setting); } catch(...){ m_randomSeed = 100; } setting = m_data->m_gui->getEditText(IDC_RANDFOREST_MAXINST); try{ m_minNumInst = boost::lexical_cast<int,std::string>(setting); } catch(...){ m_minNumInst = 10; } m_dataSetTrain.assign(m_document->getNumAttributes(),std::vector<float>(m_evaluation->getNumTrainingInstances(),0)); m_classSetTrain.assign(m_document->getNumInstances(),0); m_dataSetTest.assign(m_document->getNumAttributes(),std::vector<float>(m_evaluation->getNumTestingInstances(),0)); m_classSetTest.assign(m_evaluation->getNumTestingInstances(),0); for(unsigned int a=0; a<m_document->getNumAttributes(); ++a){ for(unsigned int i=0; i<m_evaluation->getNumTrainingInstances(); ++i){ m_dataSetTrain[a][i] = m_evaluation->getTrainingInstance(i)->getValue(a); if(a == 0) m_classSetTrain[i] = m_evaluation->getTrainingInstance(i)->classValue(); } for(unsigned int i=0; i<m_evaluation->getNumTestingInstances(); ++i){ m_dataSetTest[a][i] = m_evaluation->getTestingInstance(i)->getValue(a); if(a == 0) m_classSetTest[i] = m_evaluation->getTestingInstance(i)->classValue(); } } // Create trees ExTree tree = ExTree(m_evaluation->getNumTrainingInstances()); m_trees.assign(m_numTrees,tree); // Seed treees boost::random::uniform_int_distribution<> indRand(0,INT_MAX); boost::random::mt19937 rng; rng.seed(m_randomSeed); for(unsigned int i=0; i<m_trees.size(); ++i){ m_trees[i].seed(indRand(rng)); } m_choiceId = 0; m_workLeft = m_numTrees; m_chooseIdLock = MutexPtr(new boost::mutex); m_barrier = BarrierPtr(new boost::barrier(2)); TM_runFunctionPtr runFunc = TM_runFunctionPtr(new boost::function<void(void)>(std::bind(std::mem_fun(&ExRandomTrees::buildTree),this))); TM_callbackFunctionPtr callbackFunc = TM_callbackFunctionPtr(new boost::function<void(int)>(std::bind1st(std::mem_fun(&ExRandomTrees::buildTreeCallback),this))); for(size_t treeIdx = 0; treeIdx < m_trees.size(); ++treeIdx) { ThreadManager::queueWorkPackage(runFunc,callbackFunc); } // Start tree building threads TimerPtr timer = TimerPtr(new boost::timer); ThreadManager::executeWorkQueue(); // Make sure all trees have been trained before proceeding m_barrier->wait(); m_buildTimer = timer->elapsed(); evaluateTestSet(); }