VMamba代码中,在成功执行完依赖安装命令后,
cd kernels/selective_scan && pip install
执行代码报错:
File "xxxx/VMamba/classification/models/csms6s.py", line 85, in forward
out, x, *rest = selective_scan_cuda.fwd(u, delta, A, B, C, D, None, delta_bias, delta_softplus)
NameError: name 'selective_scan_cuda' is not defined
selective_scan相关依赖已经安装成功,检查依赖安装命令执行后生成的文件夹,其中不存在selective_scan_cuda,所以在csms6s.py文件中注释掉“selective_scan_cuda”相关代码,就可成功运行。
# if backend == "oflex":
# out, x, *rest = selective_scan_cuda_oflex.fwd(u, delta, A, B, C, D, delta_bias, delta_softplus, 1, oflex)
# elif backend == "core":
# out, x, *rest = selective_scan_cuda_core.fwd(u, delta, A, B, C, D, delta_bias, delta_softplus, 1)
# elif backend == "mamba":
# out, x, *rest = selective_scan_cuda.fwd(u, delta, A, B, C, D, None, delta_bias, delta_softplus)
out, x, *rest = selective_scan_cuda_oflex.fwd(u, delta, A, B, C, D, delta_bias, delta_softplus, 1, oflex)
后向传播部分做相应改动即可。