Closed Chrazqee closed 1 year ago
试一下在这个环境中输入
python
import cupy
看是否报错
作者你好,我试了一下,依然会报错,我使用的是 ubuntu 系统;然而,我在我的 Windows 系统的机器上安装了 spikingjelly 和 cupy 发现可以运行了,我很困惑为什么会这样,因为我安装的方式都是一样的。
可能与我的 ubuntu 系统上 cuda 非全局安装有关。感谢回复,我再找找原因!!!
试一下
python
import logging
# 设置日志级别为DEBUG
logging.basicConfig(level=logging.DEBUG)
import cupy
看看输出的报错信息
作者你好,我不知道导入时的输出是否和cupy有关,实例化MultiStepLIFNode
的时候依然报错,但是仅仅只 import cupy
的时候不会出错,我找不到问题所在。
以下是输出结果:
可能是lava未安装引起的,老版本的这一部分有点问题。安装最新版SJ框架试试
作者你好,我将 版本从 0.0.0.0.14 退到 x.12还是报错,感谢回复,我再找找原因!
用之前的方法看看14版本的报错信息 上图里面是12版本的
作者你好,报错信息就是 14 版本的报错信息;
14版本没有"clock_driven",更名了
好的,我来试试,感谢解答!
作者你好,首先表示歉意,是我的conda环境问题导致的报错,import cupy
导入的不是虚拟环境里的 cupy
, 很抱歉耽误了你的时间,我重新建了一个虚拟环境,使用了 activation_based
包,导入了正确的 cupy 包,最终问题解决,感谢解答。
以下是验证代码:
import torch
try:
import cupy
except BaseException as e:
cupy = None
assert cupy is not None
# from spikingjelly.clock_driven.neuron import MultiStepLIFNode
#
#
# lif = MultiStepLIFNode(backend='cupy').to('cuda:0')
# x = torch.randn(10, 3, 224, 224).to('cuda:0')
# out = lif(x)
# print(out.shape)
from spikingjelly.activation_based import neuron
print(cupy)
lif = neuron.LIFNode(step_mode='m')
print(lif.supported_backends)
lif.backend = 'cupy'
lif.to('cuda:0')
x = torch.randn(3, 224, 224).to('cuda:0')
out = lif(x)
print(out.shape)
输出结果:
<module 'cupy' from '/home/chrazqee/anaconda3/envs/temp/lib/python3.10/site-packages/cupy/__init__.py'>
('torch', 'cupy')
torch.Size([3, 224, 224])
希望我的经历对后续同样问题的人有帮助!
作者你好,首先表示歉意,是我的conda环境问题导致的报错,
import cupy
导入的不是虚拟环境里的cupy
, 很抱歉耽误了你的时间,我重新建了一个虚拟环境,使用了activation_based
包,导入了正确的 cupy 包,最终问题解决,感谢解答。 以下是验证代码:import torch try: import cupy except BaseException as e: cupy = None assert cupy is not None # from spikingjelly.clock_driven.neuron import MultiStepLIFNode # # # lif = MultiStepLIFNode(backend='cupy').to('cuda:0') # x = torch.randn(10, 3, 224, 224).to('cuda:0') # out = lif(x) # print(out.shape) from spikingjelly.activation_based import neuron print(cupy) lif = neuron.LIFNode(step_mode='m') print(lif.supported_backends) lif.backend = 'cupy' lif.to('cuda:0') x = torch.randn(3, 224, 224).to('cuda:0') out = lif(x) print(out.shape)
输出结果:
<module 'cupy' from '/home/chrazqee/anaconda3/envs/temp/lib/python3.10/site-packages/cupy/__init__.py'> ('torch', 'cupy') torch.Size([3, 224, 224])
希望我的经历对后续同样问题的人有帮助! 请问这个具体是怎么解决啊,我还是不太明白
猜测是版本问题,老版本框架代码的一个try语句,除了cupy还有其他包,没安装会报cupy的错误
作者 你好 其他包是什么?
把logging模块的日志级别设置成debug,能看到错误信息(缺哪个包)的输出
作者你好,首先表示歉意,是我的conda环境问题导致的报错,
import cupy
导入的不是虚拟环境里的cupy
, 很抱歉耽误了你的时间,我重新建了一个虚拟环境,使用了activation_based
包,导入了正确的 cupy 包,最终问题解决,感谢解答。 以下是验证代码:import torch try: import cupy except BaseException as e: cupy = None assert cupy is not None # from spikingjelly.clock_driven.neuron import MultiStepLIFNode # # # lif = MultiStepLIFNode(backend='cupy').to('cuda:0') # x = torch.randn(10, 3, 224, 224).to('cuda:0') # out = lif(x) # print(out.shape) from spikingjelly.activation_based import neuron print(cupy) lif = neuron.LIFNode(step_mode='m') print(lif.supported_backends) lif.backend = 'cupy' lif.to('cuda:0') x = torch.randn(3, 224, 224).to('cuda:0') out = lif(x) print(out.shape)
输出结果:
<module 'cupy' from '/home/chrazqee/anaconda3/envs/temp/lib/python3.10/site-packages/cupy/__init__.py'> ('torch', 'cupy') torch.Size([3, 224, 224])
希望我的经历对后续同样问题的人有帮助! 请问这个具体是怎么解决啊,我还是不太明白
你好,请问解决了吗,如果没有解决的话建议重新创建一个conda环境,只安装最新的spikingjelly和cupy试试。我那会儿就是这么解决的!!! 祝好!
问题已解决: 源码内, cupy 和 另外两个文件是一同import的,另外两个文件出错会导致cupy not install 的 value error, 所以分开import,
查看问题,发现在 cu_kernel_opt.py 里出错,
安装好 tensorboardX, 即可。
Issue type
SpikingJelly version
0.0.0.0.14
Description
@fangwei123456 作者你好,我在使用 spikingjelly 的过程中遇到了
CuPy is not installed
问题,可能是我重新创建conda虚拟环境的问题,因为我之前使用的时候backend="cupy"
没有报错;因此我做了一下测试,测试代码如下:报错如下:
可以看到,直接导入
cupy
并未触发断言错误,在使用spikingjelly
的时候报错了; 请问这是否是spikingjelly
的bug呢?下面是我的
conda list
希望能得到回复!谢谢!