首页 > 其他分享 >【Autoldl-Spatial-Mamba复现】

【Autoldl-Spatial-Mamba复现】

时间:2025-01-12 12:02:58浏览次数:3  
标签:Autoldl -- py cd Spatial Mamba root

 文章:<SPATIAL-MAMBA: EFFECTIVE VISUAL STATE SPACE MODELS VIA STRUCTURE-AWARE STATE FUSION>

使用的是Autodl的算法社区的Mamba2环境CodeWithGPU | 能复现才是好算法CodeWithGPU | GitHub AI算法复现社区,能复现才是好算法icon-default.png?t=O83Ahttps://www.codewithgpu.com/i/state-spaces/mamba/mamba-ssm_causal-convld

 开始搭建Spatial-Mamba

conda activate mamba2
git clone https://github.com/EdwardChasel/Spatial-Mamba.git
cd Spatial-Mamba
pip install --upgrade pip
pip install -r requirements.txt
cd kernels/selective_scan && pip install .
cd kernels/dwconv2d && python3 setup.py install --user
pip install mmengine==0.10.1 mmcv==2.1.0 opencv-python-headless ftfy regex
pip install mmdet==3.3.0 mmsegmentation==1.2.2 mmpretrain==1.2.0

COCO数据库安装

cd
cd autodl-pub/COCO2017
unzip train2017.zip -d /root/autodl-tmp/coco/
unzip val2017.zip -d /root/autodl-tmp/coco/
unzip test2017.zip -d /root/autodl-tmp/coco/
unzip annotations_trainval2017.zip -d /root/autodl-tmp/coco/

ImageNet-1K数据库安装

cd
python autodl-pub/ImageNet/extract_imagenet.py

附:ImageNet的验证(val)集是分散的图片,而训练(train)集是分装成文件夹的图片夹

imagenet/
├── train/
│   ├── n01440764/  (Example synset ID)
│   │   ├── image1.JPEG
│   │   ├── image2.JPEG
│   │   └── ...
│   ├── n01443537/  (Another synset ID)
│   │   └── ...
│   └── ...
└── val/
  └──   image1.JPEG
  └──   image2.JPEG

  └──   image3.JPEG

  └──   image4.JPEG

  └──  ...

通常来说需要对val集进行分割成文件夹,这里使用大家常用的valprep。

cd
cd autodl-tmp/imagenet/val 
wget https://github.com/soumith/imagenetloader.torch/blob/master/valprep.sh
bash valprep.sh

最后需要变成下面形式

imagenet/
├── train/
│   ├── n01440764/  (Example synset ID)
│   │   ├── image1.JPEG
│   │   ├── image2.JPEG
│   │   └── ...
│   ├── n01443537/  (Another synset ID)
│   │   └── ...
│   └── ...
└── val/
    ├── n01440764/  (Example synset ID)
    │   ├── image1.JPEG
    │   └── ...
    └── ...

复现过程

以一个GPU运行训练

cd
cd Spatial-Mamba/classification
python -m torch.distributed.launch --nnodes=1 --node_rank=0 --nproc_per_node=1 --master_addr="127.0.0.1" --master_port=29501 main.py --cfg /root/Spatial-Mamba/classification/configs/spatialmamba/spatialmamba_tiny.yaml --batch-size 128 --data-path /root/autodl-tmp/imagenet --output /root/Spatial-Mamba/Out/

--nproc_per_node=1代表1个GPU,可以更改GPU使用数

使用预训练之后的模型测试集:

cd
cd Spatial-Mamba/ckpt
wget https://drive.google.com/file/d/19kXoqGSTuKKs4AHbdUSrdKZTwTWenLIW/view?usp=drive_link


cd
sed -i 's/selective_scan_cuda_oflex_rh/selective_scan_cuda/g' /root/Spatial-Mamba/classification/models/utils.py

cd
cd Spatial-Mamba/classification
python -m torch.distributed.launch --nnodes=1 --node_rank=0 --nproc_per_node=1 --master_addr="127.0.0.1" --master_port=29501 main.py --cfg /root/Spatial-Mamba/classification/configs/spatialmamba/spatialmamba_tiny.yaml --batch-size 128 --data-path /root/autodl-tmp/imagenet --output /root/Spatial-Mamba/Out/ --pretrained /root/Spatial-Mamba/ckpt/spatialmamba_tiny_224_1k.pth

如果wget下载不了,就本地下载再放入Spatial-Mamba/ckpt,上面第二行代码是修改/root/Spatial-Mamba/classification/models/utils.py已经失效的函数

sed -i 's/selective_scan_cuda_oflex_rh/selective_scan_cuda/g' /root/Spatial-Mamba/classification/models/utils.py

报错:

  File "/root/miniconda3/envs/mamba2/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/root/miniconda3/envs/mamba2/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/root/miniconda3/envs/mamba2/lib/python3.10/site-packages/torch/distributed/launch.py", line 208, in <module>
    main()
  File "/root/miniconda3/envs/mamba2/lib/python3.10/site-packages/typing_extensions.py", line 2853, in wrapper
    return arg(*args, **kwargs)
  File "/root/miniconda3/envs/mamba2/lib/python3.10/site-packages/torch/distributed/launch.py", line 204, in main
    launch(args)
  File "/root/miniconda3/envs/mamba2/lib/python3.10/site-packages/torch/distributed/launch.py", line 189, in launch
    run(args)
  File "/root/miniconda3/envs/mamba2/lib/python3.10/site-packages/torch/distributed/run.py", line 910, in run
    elastic_launch(
  File "/root/miniconda3/envs/mamba2/lib/python3.10/site-packages/torch/distributed/launcher/api.py", line 138, in __call__
    return launch_agent(self._config, self._entrypoint, list(args))
  File "/root/miniconda3/envs/mamba2/lib/python3.10/site-packages/torch/distributed/launcher/api.py", line 269, in launch_agent
    raise ChildFailedError(
torch.distributed.elastic.multiprocessing.errors.ChildFailedError: 
============================================================

标签:Autoldl,--,py,cd,Spatial,Mamba,root
From: https://blog.csdn.net/qq_62111160/article/details/145005751

相关文章

  • 王炸升级!Mamba加持UNet,能发高区还不卷
    2024深度学习发论文&模型涨点之——Mamba+UNet众所周知,CNN在长距离建模能力方面存在局限性,而Transformer随能全局建模但受到其二次计算复杂度的限制。因此,以Mamba为代表的状态空间模型(SSMs)已然成为一种有前景的方法。Mamba是一种状态空间模型(SSM),它是一种用于时间序列分......
  • YOLO11改进-模块-引入空间自适应特征调制网络SAFMN(Spatial Adaptive Feature Modulat
            尽管基于深度学习的解决方案在图像超分辨率(SR)中取得了令人瞩目的重建性能,但这些模型通常较大且架构复杂,使其与许多具有计算和内存限制的低功耗设备不兼容。为了克服这些挑战,我们提出了一种用于高效SR设计的空间自适应特征调制(SAFM)机制。具体来说,SAFM层使用......
  • 【项目实战】ISIC 数据集上的实验揭秘:UNet + SENet、Spatial Attention 和 CBAM 的最
    “听说有人用UNet找到了CT里的小肿块,也有人用它画了比自己还帅的自拍照。于是我想,UNet这么万能,是不是还能帮我找到我丢的袜子?”别急,这篇文章不会帮你找袜子,但绝对会让你搞懂UNet的精髓!从医学影像到图像分割,UNet堪称卷积神经网络界的全能选手。如果你也是对它一知半解的“......
  • Mamba作者带斯坦福同学、导师创业,Cartesia获2700万美元种子轮融资
    来源|机器之心Mamba这种状态空间模型(SSM)被认为是Transformer架构的有力挑战者。近段时间,相关研究成果接连不断。而就在不久前,Mamba作者AlbertGu与KaranGoel、ChrisRé、ArjunDesai、BrandonYang一起共同创立的Cartesia获得2700万美元种子轮融资。Cart......
  • [教程] Linux系统Anaconda平台下基于conda配置Mamba_ssm环境
    写在前面:系统配置:        Ubuntu20.04LTS,AMDEPYC7352,NVIDIA-A100注意事项:        使用该教程可安装绝大多数版本的mamba_ssm和causal_conv1d,但是不同版本库的使用会存在细微区别,动手能力强的选手可以自己调整,不能调整的就按照原始代码的......
  • YOLOv11改进策略【YOLO和Mamba】| 2024 VM-UNet,高效的特征提取模块VSS block 二次创新
    一、本文介绍本文记录的是利用VM-UNet中的VSSblock优化YOLOv11的目标检测网络模型。VSSBlock与传统模块不同,它汲取了VMamba模型的优势,通过特定结构设计,在保证计算效率的同时,精准建模局部特征并学习长距离依赖,实现局部特征的高效处理与长距离依赖关系的有效学习。本文将其......
  • 树莓派/Jetson Nano/...aarch64:安装Miniforge 或 Mambaforge
    目录一、下载链接(我以miniforge为例)二、赋予脚本可执行权限三、运行安装脚本Miniforge或Mambaforge是Miniforge项目提供了针对多种架构(包括aarch64)的轻量级Conda发行版,它们是Miniconda的兼容版本且支持ARM64。一、下载链接(我以miniforge为例)Miniforge链......
  • Applied Spatial Statistics(十)多级模型 Multi-level models(变化的截距和斜率)
    AppliedSpatialStatistics(十)多级模型Multi-levelmodels(变化的截距和斜率)这是一个如何使用python和pymer4包拟合MLM模型的示例。Pymer4是R中著名的lme4包的python版本,其文档可在以下位置找到:https://eshinjolly.com/pymer4/#pipinstallpymer4import......
  • YOLO11改进|注意力机制篇|引入Mamba注意力机制MLLAttention
    目录一、【MLLAttention】注意力机制1.1【MLLAttention】注意力介绍1.2【MLLAttention】核心代码二、添加【MLLAttention】注意力机制2.1STEP12.2STEP22.3STEP32.4STEP42.5STEP5三、yaml文件与运行3.1yaml文件3.2运行成功截图一、【MLLAttention】注意力机制1.1......
  • Spatial-Temporal Large Language Model for Traffic Prediction
    1.输入数据这符合时间序列预测的典型设置:输入数据包含多个特征(如历史的流量、天气、时间等),这些特征用于帮助模型进行预测。输出数据则通常是要预测的目标变量,比如未来某个时间步的流量或温度,这个目标变量是一个单一的值,因此输出通道数是1。x_train包含多个特征(3个通道),作......