Spaces:
Sleeping
Sleeping
| from IPython.display import display | |
| import matplotlib.pyplot as plt | |
| from visualization import visualize_results | |
| def comparative_visualization(results_list): | |
| """ | |
| Visualize optimized inputs and loss curves across architectures and layers. | |
| Args: | |
| results_list (list): A list of dictionaries with results for each layer. | |
| Returns: | |
| matplotlib.figure.Figure: The created figure object with visualizations. | |
| """ | |
| if len(results_list)==1: | |
| result = results_list[0] | |
| return visualize_results( | |
| input_tensor=result["optimized_input"], | |
| loss_history=result["loss_history"], | |
| neuron_id=result["adjusted_neurons"], | |
| layer_name=result["layer_name"], | |
| ) | |
| fig, ax = plt.subplots(nrows=len(results_list), ncols=2, figsize=(12,5*len(results_list))) | |
| for i, result in enumerate(results_list): | |
| input_image = result["optimized_input"].squeeze().permute(1,2,0).detach().cpu().numpy() | |
| input_image_normalized = (input_image - input_image.min())/(input_image.max()-input_image.min()) | |
| ax[i,0].imshow(input_image_normalized) | |
| ax[i,0].set_title(f"{result['architecture']}-{result['layer_name']}") | |
| ax[i,0].axis("Off") | |
| loss = result["loss_history"] | |
| ax[i,1].plot(loss, marker='o') | |
| ax[i,1].set_title(f"Loss History({result['architecture']}-{result['layer_name']})") | |
| ax[i,1].set_xlabel("Steps") | |
| ax[i,1].set_ylabel("Loss") | |
| plt.tight_layout() | |
| return fig | |