### Initialize and Update LiveTimeSeries Source: https://context7.com/drsensor/mixboard/llms.txt Initialize LiveTimeSeries for custom time series visualization. Manually update the chart with custom values during a training loop. ```python from mixboard.contrib.callback import LiveTimeSeries import bokeh.plotting # Initialize time series chart with custom figure parameters time_series = LiveTimeSeries( title="Custom Metric Over Time", plot_width=800, plot_height=400 ) # Manually update with custom values during training loop for epoch in range(100): # Your training code here... loss = compute_loss() # Update the chart with new value time_series.update_chart_data(value=loss) # The chart displays: # - X-axis: elapsed time (datetime format) # - Y-axis: your custom metric values # - Automatic notebook rendering with bokeh.io.push_notebook() ``` -------------------------------- ### Initialize LiveLearningCurve Source: https://context7.com/drsensor/mixboard/llms.txt Initialize LiveLearningCurve to visualize training and validation metrics in real-time within a Jupyter Notebook. Use its callback arguments with MXNet model.fit(). ```python from mixboard.contrib.callback import LiveLearningCurve # Initialize live learning curve for a specific metric # display_freq: seconds between visual updates # frequent: batches between data logging learning_curve = LiveLearningCurve( metric_name='accuracy', display_freq=10, frequent=50 ) # Use with MXNet model training model.fit( train_data=train_iter, eval_data=test_iter, num_epoch=20, **learning_curve.callback_args() # Enables batch_cb, eval_cb ) # The chart automatically shows: # - Training metrics as dotted line with small circles # - Validation metrics as solid green line with circles # - X-axis: elapsed training time # - Y-axis: the specified metric (e.g., accuracy) # - Legend at bottom-right corner ``` -------------------------------- ### Implement CustomLiveChart with LiveBokehChart Source: https://context7.com/drsensor/mixboard/llms.txt Subclass LiveBokehChart to define custom visualization logic. Requires implementing setup_chart and update_chart_data methods. ```python from mixboard.contrib.callback import LiveBokehChart, PandasLogger import bokeh.plotting import bokeh.io class CustomLiveChart(LiveBokehChart): """Custom live chart implementation""" def setup_chart(self): # Create and configure your Bokeh figure self.fig = bokeh.plotting.Figure( title="Custom Training Visualization", x_axis_label="Batch", y_axis_label=self.metric_name ) self.x_data = [] self.y_data = [] self.line = self.fig.line(self.x_data, self.y_data, line_width=2) return bokeh.plotting.show(self.fig, notebook_handle=True) def update_chart_data(self): # Update chart with data from pandas_logger train_df = self.pandas_logger.train_df if len(train_df) > 0: self.x_data.extend(train_df['minibatch_count'].tolist()) self.y_data.extend(train_df[self.metric_name].tolist()) # Usage pandas_logger = PandasLogger(batch_size=64, frequent=50) custom_chart = CustomLiveChart( pandas_logger=pandas_logger, metric_name='loss', display_freq=5 ) model.fit( train_data=train_iter, eval_data=test_iter, **custom_chart.callback_args() ) ``` -------------------------------- ### Initialize and Use PandasLogger Source: https://context7.com/drsensor/mixboard/llms.txt Initialize PandasLogger to log training and validation metrics into dataframes. Access logged data and use its callback arguments with MXNet model.fit(). ```python from mixboard.contrib.callback import PandasLogger import mxnet as mx # Initialize the logger with batch size and logging frequency batch_size = 64 pandas_logger = PandasLogger(batch_size=batch_size, frequent=50) # Access the dataframes for analysis train_data = pandas_logger.train_df # Training batch metrics eval_data = pandas_logger.eval_df # Validation metrics per epoch epoch_data = pandas_logger.epoch_df # Epoch timing information all_data = pandas_logger.all_dataframes # Dict of all dataframes # Get elapsed training time elapsed = pandas_logger.elapsed() print(f"Training elapsed: {elapsed}") # Use with MXNet model.fit() - pass callback arguments model = mx.mod.Module(symbol=net) model.fit( train_data=train_data, eval_data=test_data, num_epoch=10, **pandas_logger.callback_args() # Enables train_cb, eval_cb, epoch_cb ) # After training, analyze the logged data print(pandas_logger.train_df[['epoch', 'minibatch_count', 'batches_per_sec']]) ``` ```python # Output: # epoch minibatch_count batches_per_sec # 0 0 50 1250.5 # 1 0 100 1280.3 # 2 0 150 1275.8 ``` -------------------------------- ### Combine Callbacks with args_wrapper Source: https://context7.com/drsensor/mixboard/llms.txt Use args_wrapper to aggregate multiple callback objects into a single dictionary for model.fit(). ```python from mixboard.contrib.callback import PandasLogger, LiveLearningCurve, args_wrapper # Create multiple callback objects batch_size = 64 pandas_logger = PandasLogger(batch_size=batch_size, frequent=50) learning_curve = LiveLearningCurve(metric_name='accuracy', display_freq=10) # Combine all callbacks into single kwargs dict combined_callbacks = args_wrapper(pandas_logger, learning_curve) # Returns: { # 'batch_end_callback': [pandas_logger.train_cb, learning_curve.batch_cb], # 'eval_end_callback': [pandas_logger.eval_cb, learning_curve.eval_cb], # 'epoch_end_callback': [pandas_logger.epoch_cb] # } # Use combined callbacks with MXNet model model.fit( train_data=train_iter, eval_data=test_iter, num_epoch=20, **combined_callbacks ) # After training, access logged data print(f"Final training accuracy: {pandas_logger.train_df['accuracy'].iloc[-1]}") print(f"Total training time: {pandas_logger.elapsed()}") ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.