我在 google colab 上使用 pytorch。 下面我有一个张量矩阵,这就是例子,实际上矩阵大小约为 50 个神经元和 30,000~50,000 次。
a= torch.tensor([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 1.],
[0., 1., 0., 1., 0.]])
每个值是,
a= torch.tensor([[Neuron1(t=1), N2(t=1), N3(t=1), N4(t=1), N5(t=1)],
[N1(t=2), N2(t=2), N3(t=2), N4(t=2), N5(t=2)],
[N1(t=3), N2(t=3), N3(t=3), N4(t=3), N5(t=3)]])
1 表示神经元激活,0 表示不激活。
所以
Neuron5(t=2)
、Neuron2(t=3)
和 Neuron4(t=3)
正在发射。神经元数量
1|
2| *
3|
4| *
5|__ *_____时间
1 2 3
执行此操作的最佳 python 代码是什么? 我现在不知道了。 感谢您的阅读。
您可以按照以下步骤轻松完成:
import matplotlib.pyplot as plt
a= torch.tensor([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 1.],
[0., 1., 0., 1., 0.]],device='cuda')
plt.scatter(*torch.where(a.cpu()))
高分辨率版本,源自 Gil 先生的代码。
a= ~~~a huge torch.tensor (50 neurons and 30,000 time)~~~
fig = plt.figure(facecolor="w", figsize=(300,5))
ax = fig.add_subplot(111)
ax.scatter(*torch.where(a.cpu()),
s=0.05[![enter image description here][1]][1],
c="black",
linewidths="0")
plt.savefig("rascatter.png",format="png", dpi=120)
这里有两个答案。非常感谢大家。
一个是 Gil Pinsky 先生,另一个是 tgrandje 先生。 吉尔先生的代码在上面。谢谢。
这是我根据 tgrandje 先生的建议编写的代码。
a=input_list
b = a.to('cpu').detach().numpy().copy()
c=b.T
raster = plt.imshow(c,cmap="Greys",aspect=1)
# plt.show
plt.savefig("raster.png", format="png", dpi=900)