Exemplo n.º 1
0
 virtual void evaluateAll(OutputArray feature_values) const
 {
     Mat_<int> feature_vals(1, (int)features_.size());
     for( int i = 0; i < (int)features_.size(); ++i )
     {
         feature_vals(0, i) = evaluate(i);
     }
     feature_values.assign(feature_vals);
 }
Exemplo n.º 2
0
void ReadDataLabelLibSVM(const std::string& filename,
    int32_t feature_dim, int32_t num_data,
    std::vector<std::vector<float> >* features, std::vector<float>* labels,
    bool feature_one_based, bool label_one_based, bool snappy_compressed) {
  petuum::HighResolutionTimer read_timer;
  features->resize(num_data);
  labels->resize(num_data);
  std::string file_str = snappy_compressed ?
    SnappyOpenFileToString(filename) : OpenFileToString(filename);
  std::istringstream data_stream(file_str);
  std::vector<int32_t> feature_ids(feature_dim);
  std::vector<float> feature_vals(feature_dim);
  int i = 0;
  for (std::string line; std::getline(data_stream, line) && i < num_data;
      ++i) {
    float label = ParseLibSVMLine(line, &feature_ids,
        &feature_vals, feature_one_based, label_one_based);
    (*labels)[i] = label;
    (*features)[i].resize(feature_dim);
    for (int j = 0; j < feature_ids.size(); ++j) {
      (*features)[i][feature_ids[j]] = feature_vals[j];
    }
  }
  CHECK_EQ(num_data, i) << "Request to read " << num_data
    << " data instances but only " << i << " found in " << filename;
  LOG(INFO) << "Read " << i << " instances from " << filename << " in "
    << read_timer.elapsed() << " seconds.";
}