Visualize & Analyze Tables
Use W&B Tables to log and visualize data and model predictions. Interactively explore your data to:
- Compare changes precisely across models, epochs, or individual examples
- Understand higher-level patterns in your data
- Capture and communicate your insights with visual samples
Customize your W&B Tables to answer questions about your machine learning model's performance, analyze your data, and more.
W&B Tables posses the following behaviors:
- stateless in an artifact context: any Table logged alongside an artifact version will reset to its default state after you close the browser window
- stateful in a workspace or report context: any changes you make to a Table in a single run workspace, multi-run project workspace, or Report will persist.
For information on how to save your current W&B Table view, see Save your view.
Use the W&B App to sort, filter, and group your W&B Tables.
Sort all rows in a Table by the value in a given column.
- Hover your mouse over the column title. A kebob menu will appear (three vertical docs).
- Select on the kebob menu (three vertical dots).
- Choose Sort Asc or Sort Desc to sort the rows in ascending or descending order, respectively.
The preceding image demonstrates how to view sorting options for a Table column called
Filter all rows by an expression with the Filter button on the top left of the dashboard.
Select Add filter to add one or more filters to your rows. Three dropdown menus will appear. From left to right the filter types are based on: Column name, Operator , and Values
|Column name||Binary relation||Value|
|Accepted values||String||=, ≠, ≤, ≥, IN, NOT IN,||Integer, float, string, timestamp, null|
The expression editor shows a list of options for each term using autocomplete on column names and logical predicate structure. You can connect multiple logical predicates into one expression using "and" or "or" (and sometimes parentheses).
The preceding image demonstrates shows a filter that is based on the
val_loss column. The filter shows W&B Runs with a validation loss less than or equal to 1.
Group all rows by the value in a particular column with the Group by button in a column header.
By default, this turns other numeric columns into histograms showing the distribution of values for that column across the group. Grouping is helpful for understanding higher-level patterns in your data.
All the operations described above also work in the context of Table comparison.
From the UI
To compare two Tables, start by viewing one Table logged alongside an artifact. In the following image we demonstrate a model's predictions on MNIST validation data after each of five epochs (interactive example →)
Next, select a different artifact version for comparison—for example, "v4" to compare to MNIST predictions made by the same model after 5 epochs of training. Hover over the second artifact version in the sidebar and click "Compare" when it appears.
Initially you will see both Tables merged together. The first Table selected has index 0 and a blue highlight, and the second Table has index 1 and a yellow highlight.
From the merged view, you can
- choose the join key: use the dropdown at the top left to set the column to use as the join key for the two tables. Typically this will be the unique identifier of each row, such as the file name of a specific example in your dataset or an incrementing index on your generated samples. Note that it's currently possible to select any column, which may yield illegible Tables and slow queries.
- concatenate instead of join: select "concatenating all tables" in this dropdown to union all the rows from both Tables into one larger Table instead of joining across their columns
- reference each Table explicitly: use 0, 1, and * in the filter expression to explicitly specify a column in one or both Table instances
- visualize detailed numerical differences as histograms: compare the values in any cell at a glance
To view the two Tables side-by-side, change the first dropdown from "Merge Tables: Table" to "List of: Table" and then update the "Page size" respectively. Here the first Table selected is on the left and the second one is on the right. Also, you can compare these tables vertically as well by clicking on the "Vertical" checkbox.
- compare the Tables at a glance: apply any operations (sort, filter, group) to both Tables in tandem and spot any changes or differences quickly. For example, view the incorrect predictions grouped by guess, the hardest negatives overall, the confidence score distribution by true label, etc.
- explore two Tables independently: scroll through and focus on the side/rows of interest
Compare across time
To analyze model performance over training time, log a Table in an artifact context for each meaningful step of training: at the end of every validation step, after every 50 epochs of training, or any frequency that makes sense for your pipeline. Use the side-by-side view to visualize changes in model predictions.
For a more detailed walkthrough of visualizing predictions across training time, see this report and this interactive notebook example →
Compare across model variants
To analyze model performance across different configurations (hyperparameters, base architectures, etc), compare two artifact versions logged at the same step for two different models. For example, compare predictions between a
baseline and a new model variant,
2x_layers_2x_lr, where the first convolutional layer doubles from 32 to 64, the second from 128 to 256, and the learning rate from 0.001 to 0.002. From this live example, use the side-by-side view and filter down to the incorrect predictions after 1 (left tab) versus 5 training epochs (right tab).
This is a toy example of model comparison, but it illustrates the ease, flexibility, and depth of the exploratory analysis you can do with Tables—without rerunning any of your code, writing new one-off scripts, generating new charts, etc.
- 1 training epoch
- 5 training epochs
Save your view
Tables you interact with in the run workspace, project workspace, or a report will automatically save their view state. If you apply any Table operations then close your browser, the Table will retain the last viewed configuration when you next navigate to the table.
Tables you interact with in the artifact context will remain stateless.
To save a Table from a workspace in a particular state, export it to a Report. You can do this from the three dot menu in the top right corner of any workspace visualization panel (three dots → "Share panel" or "Add to report").
These reports highlight the different use cases of W&B Tables: