在 Python 深度学习中,可视化通常分为几类:模型结构可视化、训练过程可视化、特征/激活可视化、结果预测可视化。下面我按“常用方法 + 工具 + 示例代码”给你一个系统性的总结。
from tensorflow.keras.utils import plot_model
plot_model(model, to_file='model.png', show_shapes=True)
torchvizfrom torchviz import make_dot
y = model(torch.randn(1, 3, 224, 224))
make_dot(y, params=dict(model.named_parameters()))
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir='./logs')
model.fit(x, y, callbacks=[tensorboard_callback])
终端运行:
tensorboard --logdir=./logs
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter()
for epoch in range(epochs):
writer.add_scalar('Loss/train', loss, epoch)
writer.close()
import matplotlib.pyplot as plt
plt.plot(train_loss, label='train')
plt.plot(val_loss, label='val')
plt.legend()
plt.show()
import numpy as np
import matplotlib.pyplot as plt
activation_model = Model(inputs=model.input,
outputs=model.layers[conv_layer_index].output)
act = activation_model.predict(img)
for i in range(8):
plt.subplot(2,4,i+1)
plt.imshow(act[0,:,:,i], cmap='viridis')
plt.show()
常用库:
pip install tf-explain
from tf_explain.core.grad_cam import GradCAM
explainer = GradCAM()
explainer.explain((img, class_index), model, layer_name='conv5')
plt.imshow(img)
plt.title(f'Pred: {class_names[pred]}')
plt.show()
import cv2
for box in boxes:
cv2.rectangle(img, (x1,y1), (x2,y2), (0,255,0), 2)
cv2.imshow('result', img)
from sklearn.manifold import TSNE
tsne = TSNE(n_components=2)
embed_2d = tsne.fit_transform(embeddings)
plt.scatter(embed_2d[:,0], embed_2d[:,1], c=labels)
plt.show()
| 目的 | 工具 |
|---|---|
| 训练曲线 | TensorBoard / Matplotlib |
| 模型结构 | plot_model / torchviz |
| 特征图 | Matplotlib |
| 可解释性 | Grad-CAM / tf-explain |
| 向量分布 | t-SNE / UMAP |
| 交互式 | Weights & Biases (wandb) |
你可以告诉我:
我可以直接给你针对你项目的完整可视化代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。