LaBraM项目安装与配置指南
LaBraM ICLR 2024 spotlight 项目地址: https://gitcode.com/gh_mirrors/la/LaBraM
1. 项目基础介绍
LaBraM(Large Brain Model)是一个用于脑-计算机接口(BCI)的开源项目,旨在通过大量EEG(脑电图)数据学习通用表征。该项目是ICLR 2024论文"Large Brain Model for Learning Generic Representations with Tremendous EEG Data in BCI"的官方实现。它使用大规模的EEG数据,通过无监督预训练来获取EEG信号的通用感知能力,随后可以在不同的下游任务上进行微调。项目主要使用的编程语言是Python。
2. 关键技术和框架
- EEG信号处理:项目包括对EEG信号进行预处理的部分,如去噪、滤波和重采样等。
- 向量量化神经光谱预测(VQNSP):用于训练神经标记器,将连续的原始EEG通道片段编码为紧凑的神经代码。
- Transformer架构:通过预测被遮蔽的EEG通道片段的原始神经代码来进行预训练。
- 深度学习框架:使用PyTorch作为主要的深度学习框架。
3. 安装和配置准备工作
在开始安装之前,请确保您的计算机满足以下要求:
- Python 3.11
- PyTorch、torchvision和torchaudio库
- 适用于CUDA的PyTorch(如果使用NVIDIA GPU)
- tensorboardX库
- Git(用于克隆项目)
安装步骤
-
克隆项目仓库:
git clone https://github.com/935963004/LaBraM.git cd LaBraM
-
设置Python环境:
conda create -n labram python=3.11 conda activate labram
-
安装PyTorch和相关库:
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.8 -c pytorch -c nvidia
注意:确保安装与您GPU兼容的PyTorch版本。
-
安装其他Python依赖:
conda install tensorboardX pip install -r requirements.txt
-
准备预训练数据:
- 将原始EEG文件(如.cnt、.edf、.bdf等)转换为hdf5格式的文件。可以使用项目中提供的示例代码进行转换。
-
训练神经标记器:
使用以下命令开始训练:
OMP_NUM_THREADS=1 torchrun --nnodes=1 --nproc_per_node=8 run_vqnsp_training.py \ --output_dir ./checkpoints/vqnsp/ \ --log_dir ./log/vqnsp/ \ --model vqnsp_encoder_base_decoder_3x200x12 \ --codebook_n_emd 8192 \ --codebook_emd_dim 64 \ --quantize_kmeans_init \ --batch_size 128 \ --opt adamw \ --opt_betas 0.9 0.99 \ --weight_decay 1e-4 \ --warmup_epochs 10 \ --epochs 100 \ --save_ckpt_freq 20
-
LaBraM预训练:
使用以下命令开始预训练:
OMP_NUM_THREADS=1 torchrun --nnodes=1 --nproc_per_node=8 run_labram_pretraining.py \ --output_dir ./checkpoints/labram_base \ --log_dir ./log/labram_base \ --model labram_base_patch200_1600_8k_vocab \ --tokenizer_model vqnsp_encoder_base_decoder_3x200x12 \ --tokenizer_weight ./checkpoints/vqnsp.pth \ --batch_size 64 \ --lr 5e-4 \ --warmup_epochs 5 \ --clip_grad 3.0 \ --drop_path 0. \ --layer_scale_init_value 0.1 \ --opt_betas 0.9 0.98 \ --opt_eps 1e-8 \ --epochs 50 \ --save_ckpt_freq 5 \ --codebook_dim 64 \ --gradient_accumulation_steps 1
-
在下游任务上微调:
在微调之前,使用项目中的代码预处理下游数据集,并分为训练集、验证集和测试集。然后可以使用以下命令进行微调:
OMP_NUM_THREADS=1 torchrun --nnodes=1 --nproc_per_node=8 run_class_finetuning.py \ --output_dir ./checkpoints/finetune_tuab_base/ \ --log_dir ./log/finetune_tuab_base \ --model labram_base_patch200_200 \ --finetune ./checkpoints/labram-base.pth \ --weight_decay 0.05 \ --batch_size 64 \ --lr 5e-4 \ --update_freq 1 \ --warmup_epochs 5 \ --epochs 50 \ --layer_decay 0.65 \ --drop_path 0.1 \ --save_ckpt_freq 5 \ --disable_rel_pos_bias \ --abs_pos_emb \ --dataset TUAB \ --disable_qkv_bias \ --seed 0
以上步骤提供了从环境配置到模型训练的详细指南。请根据您的具体需求调整命令中的参数。
LaBraM ICLR 2024 spotlight 项目地址: https://gitcode.com/gh_mirrors/la/LaBraM
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考