def GenerateFinalTrainingFile(model_output): ncols = 0 nrows = 0 final_file = "" ngroups = len(config.LABEL_GROUPS) ###export csv #""" first = glob.glob(config.TEMPDATA_OUTPUT + '/*/training_data.csv')[0] final_csv = CSVFile() temp = CSVFile() temp.from_file(first) final_csv.setHeader(temp.getHeader()) #""" ###export csv--- current_file = CSVFile() for filename in glob.glob(config.TEMPDATA_OUTPUT + '/*/training_data.csv'): current_file.from_file(filename) nrows += current_file.get_row_count() ncols = len(current_file.getHeader()) for row in current_file.getRows(): #ecsv final_csv.addRow(row) #ecsv-- #last ngroups rows are labels, which are ints for v in row[:-ngroups]: floatval = "0 " try: floatval = "{0:.10f}".format(float(v)) + " " except: print("Warning: can't transform to float: ", v) final_file += floatval for group_label in row[-ngroups:]: final_file += group_label + ' ' final_file += '\n' mkdir(config.DATA_OUTPUT + '/training') final_csv.saveAs(config.DATA_OUTPUT + "/training/final_training_data") with open(config.DATA_OUTPUT + "/training/final_training_data.txt", "w") as output: output.write("0\n 0 \n {} {} {}\n".format(ncols, nrows, ngroups)) for name in utils.get_group_names(config.LABEL_GROUPS): output.write(name + " ") output.write(model_output + "\n") output.write(final_file)
def DoPredict(input_model, filename): """ Generates predicted labels file. returns path to the generated file """ name = w2p(filename).split('/')[-1:][0].split('.')[0] temp_folder = config.TEMPDATA_OUTPUT + '/' + name mkdir(temp_folder) output_folder = config.DATA_OUTPUT + '/prediction/' + name mkdir(output_folder) # get opensmile data opensmile_data = CSVFile() opensmile_data.from_file(config.OPENSMILE_OUTPUT + '/' + name + '/features.csv') #create prediction input data #option 1 prediction result_file = '1\n' #-1 because first col is not feature result_file += str(len(opensmile_data.getHeader()) - 1) + '\n' result_file += str(opensmile_data.get_row_count()) + '\n' result_file += input_model + '\n' for row in opensmile_data.getRows(): features = row[2:] for v in features: floatval = "0 " try: floatval = "{0:.10f}".format(float(v)) + " " except: print("Warning: can't transform to float: ", v) result_file += floatval result_file += '\n' with open(temp_folder + '/prediction_data.txt', 'w') as output: output.write(result_file) #get prediction output with open(temp_folder + '/prediction_data.txt') as data: with open(output_folder + '/predicted_labels.csv', 'w') as output: subprocess.call([config.MODEL_MANAGER], stdin=data, stdout=output) return output_folder + '/predicted_labels.csv'
def GenerateFinalRegressionTrainingFile(): ncols = 0 nrows = 0 final_file = "" ###export csv first = glob.glob(config.TEMPDATA_OUTPUT + '/*/regression_training_data.csv')[0] final_csv = CSVFile() temp = CSVFile() temp.from_file(first) final_csv.setHeader(temp.getHeader()) ###export csv--- current_file = CSVFile() for filename in glob.glob(config.TEMPDATA_OUTPUT + '/*/regression_training_data.csv'): current_file.from_file(filename) nrows += current_file.get_row_count() ncols = len(current_file.getHeader()) for row in current_file.getRows(): #ecsv final_csv.addRow(row) #ecsv-- for v in row: final_file += "{0:.10f}".format(float(v)) + " " final_file += "\n" final_csv.saveAs(config.DATA_OUTPUT + "/training/final_regression_training_data") with open( config.DATA_OUTPUT + "/training/final_regression_training_data.txt", "w") as output: outputDimensions = len(config.WINDOW_VALUES) inputDimensions = ncols - outputDimensions output.write("0 \n 1 \n {} {} {}\n".format(inputDimensions, outputDimensions, nrows)) output.write(final_file)