#!/bin/bash

# xPatch_SparseChannel Classification Training Script for Multiple Datasets
export CUDA_VISIBLE_DEVICES=0

model_name=xPatch_SparseChannel

# Create results directory if it doesn't exist
mkdir -p ./results

# Heartbeat dataset (seq_len=405, enc_in=61, k_graph=8)
python -u run.py \
  --task_name classification \
  --is_training 1 \
  --root_path ./dataset/Heartbeat/ \
  --model_id Heartbeat \
  --model $model_name \
  --data UEA \
  --e_layers 2 \
  --batch_size 64 \
  --seq_len 405 \
  --enc_in 61 \
  --d_model 128 \
  --d_ff 256 \
  --n_heads 16 \
  --patch_len 16 \
  --stride 8 \
  --dropout 0.1 \
  --des 'xPatch_SparseChannel_Heartbeat' \
  --itr 1 \
  --learning_rate 0.0005 \
  --train_epochs 100 \
  --patience 5 \
  --revin 0 \
  --k_graph 8 | tee ./results/xPatch_SparseChannel_Heartbeat.log

# UWaveGestureLibrary dataset (seq_len=315, enc_in=3, k_graph=3)
python -u run.py \
  --task_name classification \
  --is_training 1 \
  --root_path ./dataset/UWaveGestureLibrary/ \
  --model_id UWaveGestureLibrary \
  --model $model_name \
  --data UEA \
  --e_layers 2 \
  --batch_size 64 \
  --seq_len 315 \
  --enc_in 3 \
  --d_model 128 \
  --d_ff 256 \
  --n_heads 16 \
  --patch_len 16 \
  --stride 8 \
  --dropout 0.1 \
  --des 'xPatch_SparseChannel_UWaveGestureLibrary' \
  --itr 1 \
  --learning_rate 0.001 \
  --train_epochs 100 \
  --patience 30 \
  --revin 0 \
  --k_graph 3 | tee ./results/xPatch_SparseChannel_UWaveGestureLibrary.log

# FaceDetection dataset (seq_len=62, enc_in=144, k_graph=8)
python -u run.py \
  --task_name classification \
  --is_training 1 \
  --root_path ./dataset/FaceDetection/ \
  --model_id FaceDetection \
  --model $model_name \
  --data UEA \
  --e_layers 2 \
  --batch_size 64 \
  --seq_len 62 \
  --enc_in 144 \
  --d_model 128 \
  --d_ff 256 \
  --n_heads 16 \
  --patch_len 16 \
  --stride 8 \
  --dropout 0.1 \
  --des 'xPatch_SparseChannel_FaceDetection' \
  --itr 1 \
  --learning_rate 0.0005 \
  --train_epochs 100 \
  --patience 5 \
  --revin 0 \
  --k_graph 8 | tee ./results/xPatch_SparseChannel_FaceDetection.log

# EthanolConcentration dataset (seq_len=1751, enc_in=3, k_graph=3)
python -u run.py \
  --task_name classification \
  --is_training 1 \
  --root_path ./dataset/EthanolConcentration/ \
  --model_id EthanolConcentration \
  --model $model_name \
  --data UEA \
  --e_layers 2 \
  --batch_size 64 \
  --seq_len 1751 \
  --enc_in 3 \
  --d_model 128 \
  --d_ff 256 \
  --n_heads 16 \
  --patch_len 16 \
  --stride 8 \
  --dropout 0.1 \
  --des 'xPatch_SparseChannel_EthanolConcentration' \
  --itr 1 \
  --learning_rate 0.0005 \
  --train_epochs 100 \
  --patience 30 \
  --revin 0 \
  --k_graph 3 | tee ./results/xPatch_SparseChannel_EthanolConcentration.log

# Handwriting dataset (seq_len=152, enc_in=3, k_graph=3)
python -u run.py \
  --task_name classification \
  --is_training 1 \
  --root_path ./dataset/Handwriting/ \
  --model_id Handwriting \
  --model $model_name \
  --data UEA \
  --e_layers 2 \
  --batch_size 64 \
  --seq_len 152 \
  --enc_in 3 \
  --d_model 128 \
  --d_ff 256 \
  --n_heads 16 \
  --patch_len 16 \
  --stride 8 \
  --dropout 0.1 \
  --des 'xPatch_SparseChannel_Handwriting' \
  --itr 1 \
  --learning_rate 0.001 \
  --train_epochs 100 \
  --patience 30 \
  --revin 0 \
  --k_graph 3 | tee ./results/xPatch_SparseChannel_Handwriting.log

# JapaneseVowels dataset (seq_len=29, enc_in=12, k_graph=8)
python -u run.py \
  --task_name classification \
  --is_training 1 \
  --root_path ./dataset/JapaneseVowels/ \
  --model_id JapaneseVowels \
  --model $model_name \
  --data UEA \
  --e_layers 2 \
  --batch_size 64 \
  --seq_len 29 \
  --enc_in 12 \
  --d_model 128 \
  --d_ff 256 \
  --n_heads 16 \
  --patch_len 16 \
  --stride 8 \
  --dropout 0.1 \
  --des 'xPatch_SparseChannel_JapaneseVowels' \
  --itr 1 \
  --learning_rate 0.0005 \
  --train_epochs 100 \
  --patience 30 \
  --revin 0 \
  --k_graph 8 | tee ./results/xPatch_SparseChannel_JapaneseVowels.log

# SelfRegulationSCP1 dataset (seq_len=896, enc_in=6, k_graph=6)
python -u run.py \
  --task_name classification \
  --is_training 1 \
  --root_path ./dataset/SelfRegulationSCP1/ \
  --model_id SelfRegulationSCP1 \
  --model $model_name \
  --data UEA \
  --e_layers 2 \
  --batch_size 64 \
  --seq_len 896 \
  --enc_in 6 \
  --d_model 128 \
  --d_ff 256 \
  --n_heads 16 \
  --patch_len 16 \
  --stride 8 \
  --dropout 0.1 \
  --des 'xPatch_SparseChannel_SelfRegulationSCP1' \
  --itr 1 \
  --learning_rate 0.0005 \
  --train_epochs 100 \
  --patience 5 \
  --revin 0 \
  --k_graph 6 | tee ./results/xPatch_SparseChannel_SelfRegulationSCP1.log

# SelfRegulationSCP2 dataset (seq_len=1152, enc_in=7, k_graph=7)
python -u run.py \
  --task_name classification \
  --is_training 1 \
  --root_path ./dataset/SelfRegulationSCP2/ \
  --model_id SelfRegulationSCP2 \
  --model $model_name \
  --data UEA \
  --e_layers 2 \
  --batch_size 64 \
  --seq_len 1152 \
  --enc_in 7 \
  --d_model 128 \
  --d_ff 256 \
  --n_heads 16 \
  --patch_len 16 \
  --stride 8 \
  --dropout 0.1 \
  --des 'xPatch_SparseChannel_SelfRegulationSCP2' \
  --itr 1 \
  --learning_rate 0.0005 \
  --train_epochs 100 \
  --patience 5 \
  --revin 0 \
  --k_graph 7 | tee ./results/xPatch_SparseChannel_SelfRegulationSCP2.log

# SpokenArabicDigits dataset (seq_len=93, enc_in=13, k_graph=8)
python -u run.py \
  --task_name classification \
  --is_training 1 \
  --root_path ./dataset/SpokenArabicDigits/ \
  --model_id SpokenArabicDigits \
  --model $model_name \
  --data UEA \
  --e_layers 2 \
  --batch_size 64 \
  --seq_len 93 \
  --enc_in 13 \
  --d_model 128 \
  --d_ff 256 \
  --n_heads 16 \
  --patch_len 16 \
  --stride 8 \
  --dropout 0.1 \
  --des 'xPatch_SparseChannel_SpokenArabicDigits' \
  --itr 1 \
  --learning_rate 0.0005 \
  --train_epochs 100 \
  --patience 5 \
  --revin 0 \
  --k_graph 8 | tee ./results/xPatch_SparseChannel_SpokenArabicDigits.log

# PEMS-SF dataset (seq_len=144, enc_in=963, k_graph=8)
python -u run.py \
  --task_name classification \
  --is_training 1 \
  --root_path ./dataset/PEMS-SF/ \
  --model_id PEMS-SF \
  --model $model_name \
  --data UEA \
  --e_layers 2 \
  --batch_size 16 \
  --seq_len 144 \
  --enc_in 963 \
  --d_model 128 \
  --d_ff 256 \
  --n_heads 16 \
  --patch_len 16 \
  --stride 8 \
  --dropout 0.1 \
  --des 'xPatch_SparseChannel_PEMS-SF' \
  --itr 1 \
  --learning_rate 0.0005 \
  --train_epochs 100 \
  --patience 30 \
  --revin 0 \
  --k_graph 8 | tee ./results/xPatch_SparseChannel_PEMS-SF.log
