Spaces:
Sleeping
Sleeping
File size: 1,437 Bytes
adcc0ff | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
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
|