def plot_predictions(self, cfg, tub_paths, model_path): """ Plot model predictions for angle and throttle against data from tubs. """ from donkeycar.parts.datastore import TubGroup from donkeycar.parts.keras import KerasLinear import pandas as pd from matplotlib import pyplot as plt tg = TubGroup(tub_paths) model_path = os.path.expanduser(model_path) model = KerasLinear() model.load(model_path) gen = tg.get_batch_gen(None,batch_size=len(tg.df),record_transform=None,shuffle=True, df=tg.df) arr = next(gen) user_angles = [] user_throttles = [] pilot_angles = [] pilot_throttles = [] for tub in tg.tubs: num_records = tub.get_num_records() for iRec in tub.get_index(shuffled=False): record = tub.get_record(iRec) img = record["cam/image_array"] user_angle = float(record["user/angle"]) user_throttle = float(record["user/throttle"]) pilot_angle, pilot_throttle = model.run(img) user_angles.append(user_angle) user_throttles.append(user_throttle) pilot_angles.append(pilot_angle) pilot_throttles.append(pilot_throttle) angles_df = pd.DataFrame({'user_angle': user_angles, 'pilot_angle': pilot_angles}) throttles_df = pd.DataFrame({'user_throttle': user_throttles, 'pilot_throttle': pilot_throttles}) fig = plt.figure() title = "Model Predictions\nTubs: {}\nModel: {}".format(tub_paths, model_path) fig.suptitle(title) ax1 = fig.add_subplot(211) ax2 = fig.add_subplot(212) angles_df.plot(ax=ax1) throttles_df.plot(ax=ax2) ax1.legend(loc=4) ax2.legend(loc=4) plt.show()
def plot_predictions(cfg, tub_paths, model_path): ''' Plot model predictions for angle and throttle against data from tubs. ''' from donkeycar.parts.datastore import TubGroup from donkeycar.parts.keras import KerasCategorical tg = TubGroup(tub_paths) model_path = os.path.expanduser(model_path) model = KerasCategorical() model.load(model_path) gen = tg.get_batch_gen(batch_size=len(tg.df), shuffle=False) arr = next(gen) """