PyTorch实战:利用matplotlib可视化模型内部Tensor

可视化模型中某一tensor(利用matplotlib)

该可视化的假设是,tensor原本是四维,一个是channel一个是batch还有俩feature维度。压缩掉channel(size=1灰度图),batch顺次展示feature。

获取tensor名称

先print出model每层的名称,也可以不print在参数中查看。

for name in model.state_dict():
	print(name)

然后选取需要的name,以我的为例,是
layer1.0.weight
,给tensor赋值。

tensor = model.state_dict()['layer1.0.weight']

顺便可以单独保存一下这个tensor,方便后续调用。

torch.save(tensor, 'name.pt')

压缩tensor

由于原本的tensor是4维的,所以需要将tensor压缩到3维(压缩掉只有一个参数的channel),使用的函数是squeeze,删除size=1的维度,详细用法可见https://pytorch.org/docs/stable/generated/torch.squeeze.html)。这里注意如果batch为1会把batch也压缩掉,下一不就不需要for直接imshow就可以。

tensor = tensor.squeeze(tensor)

画出tensor

以batch=25为例,代码如下:

import matplotlib.pyplot as plt
plt.figure()
for i in range(tensor.shape[0]):
	plt.subplot(5, 5, i+1)
	plt.imshow(tensor[i], cmap='gray')
plt.show()

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,那么我可以为您提供一个使用PyTorchMatplotlib和机器学习算法的Python项目的示例。这个项目的目标是训练一个神经网络模型来识别手写数字。以下是项目的大致步骤: 1. 收集并准备数据集 在这个项目中,我们将使用MNIST数据集,它是一个手写数字的图像数据集。您可以通过PyTorch内置的数据集库来获取MNIST数据集。在准备数据集时,您需要将图像转换为张量并对其进行标准化处理。 2. 构建神经网络模型 使用PyTorch,您可以很容易地构建一个神经网络模型。在这个项目中,我们将使用一个简单的卷积神经网络(CNN)模型来识别手写数字。您可以使用PyTorch的nn库来构建模型。 3. 训练神经网络模型 在准备好数据集和模型之后,我们需要将它们组合在一起并训练模型。在这个项目中,我们将使用梯度下降算法来训练模型。您可以使用PyTorch的优化器来实现梯度下降算法。 4. 评估神经网络模型 一旦模型训练完成,我们需要对其进行评估以查看其在测试数据集上的表现如何。在这个项目中,我们将使用Matplotlib可视化模型的性能,并使用PyTorch的损失函数来计算模型的损失。 5. 使用神经网络模型进行预测 最后,我们可以使用训练好的神经网络模型来识别新的手写数字。在这个项目中,我们将编写一个简单的Python脚本来输入一张手写数字的图像,并使用训练好的模型来预测它所代表的数字。 以上是一个简要的Python项目示例,其中使用了PyTorchMatplotlib和机器学习算法。希望这可以为您提供一些灵感和指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值