def _eval_episode(self, file_name): video_file = file_name[0] info_file = file_name[1] info = pd.read_csv(info_file) nr_images = len(info) previous_speed = info['linear_speed'][0] general_mse = steer_mse = 0 # Determine steering angles and commands helper = DatasetHelper(None, None, None, self.cfg.dataset) frame_indices = range(len(info)) course = info['course'] linear_speed = info['linear_speed'] angles, cmds = helper.get_steer(frame_indices, course, linear_speed) # Open video to read frames vid = cv2.VideoCapture(video_file) for index in range(nr_images): ret, frame = vid.read() if not ret: print('Could not retrieve frame') return None, None gt_speed = linear_speed[index] gt_steer = angles[index] predicted_steer, predicted_speed = self.run_1step( frame, previous_speed, cmds[index]) steer = (predicted_steer - gt_steer) * (predicted_steer - gt_steer) speed = (predicted_speed - gt_speed) * (predicted_speed - gt_speed) steer_mse += steer general_mse += 0.05 * speed + 0.95 * steer log.info("Frame number {}".format(index)) log.info("Steer: predicted {}, ground_truth {}".format( predicted_steer, gt_steer)) log.info("Speed: predicted {}, ground_truth {}".format( predicted_speed, gt_speed)) previous_speed = gt_speed vid.release() general_mse /= float(nr_images) steer_mse /= float(nr_images) return general_mse, steer_mse
""" Attach a text label above each bar displaying its height """ for rect in rects: height = rect.get_height() ax.text(rect.get_x() + rect.get_width() / 2. - .13, 1.0 * height, '{:10.2f}'.format(round(height, 2)), ha='center', va='bottom', size=10) mpl.rc('hatch', color="white") with DatasetHelper() as dataset_helper: figs, axs = plt.subplots(1, 2, False, True) label_memory = ["Memória", "Arquivo"] for j, mode in enumerate(["memory", "file"]): ax = axs[j] fig = figs plans = [ x[0] for x in dataset_helper.select_data( "SELECT distinct plan FROM result WHERE plan <> '{0}'".format( "CPU_ORIGINAL")) ] print(plans) datasets = [ x[0] for x in dataset_helper.select_data( '''SELECT distinct dataset FROM result''') ]
ha='center', va='bottom', **hfont2) def format_name(name, threads): if name == "CPU_SEQUENTIAL": return "SPar(" + str(threads) + " THREAD" + ( "S)" if str(threads) != "1" else ")") return name.replace("GPU_", "") + "(" + str(threads) + " GPU" + ( "S)" if threads > 1 else ")") for dataset in datasets: for mode in ["memory", "file"]: with DatasetHelper() as db: sql_formatted = sql.format(mode, dataset["dataset_name"]) print("SQL:{0}".format(sql_formatted)) data = [x for x in db.select_data(sql_formatted)] labels = [format_name(x[1], x[2]) for x in data] print(labels) y_pos = np.arange(len(labels)) print(y_pos) values = [x[3] / x[4] for x in data] # tempo_medio_sequential / (tempo_medio_p + desvio_tempo_p) - tempo_medio_sequential / tempo_medio_p y_error = [ (x[3] / (x[4] + x[5]) - x[3] / x[4]) if x[5] != None else 0 for x in data ] print(y_error)