tahamajs's picture
download
raw
19.4 kB
#!/bin/bash
echo "🎯 سیستم VQA نوروسیمبولیک - اسکریپت اجرای کامل"
echo "=================================================="
MODE="demo"
MODEL="hybrid_vqa"
DATASET="synthetic"
EPOCHS=10
SAMPLES=50
CONFIG="src/config/default_config.yaml"
COMPLEXITY="medium"
VISUALIZE=false
SAVE_RESULTS=false
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
show_help() {
echo "استفاده: $0 [گزینه‌ها]"
echo ""
echo "گزینه‌های پایه:"
echo " -m, --mode MODE حالت اجرا (train|test|demo|benchmark|advanced|complex|adversarial|multi-task|interpretability|llm-demo|llm-gemini|llm-langchain|llm-langgraph|llm-comparative) [پیش‌فرض: demo]"
echo " -n, --model MODEL نوع مدل (nmn|scene_graph|hybrid_vqa|transformer|memory|multi-task) [پیش‌فرض: hybrid_vqa]"
echo " -d, --dataset DATASET مجموعه داده (clevr|gqa|vqa_cp|synthetic) [پیش‌فرض: synthetic]"
echo " -e, --epochs EPOCHS تعداد epoch ها [پیش‌فرض: 10]"
echo " -s, --samples SAMPLES تعداد نمونه‌ها برای بنچمارک [پیش‌فرض: 50]"
echo " -c, --config CONFIG مسیر فایل تنظیمات [پیش‌فرض: src/config/default_config.yaml]"
echo " --complexity LEVEL سطح پیچیدگی (simple|medium|complex) [پیش‌فرض: medium]"
echo " --visualize فعال‌سازی تجسم‌های پیشرفته"
echo " --save-results ذخیره نتایج تفصیلی"
echo " -h, --help نمایش این راهنما"
echo ""
echo "حالت‌های پیشرفته:"
echo " advanced اجرای معماری‌های پیشرفته (Transformer, Memory Networks)"
echo " complex تست روی مجموعه داده‌های پیچیده (CLEVR, GQA, VQA-CP)"
echo " adversarial تست مقاومت در برابر حملات adversarial"
echo " multi-task آزمایش یادگیری چندوظیفه‌ای"
echo " interpretability تحلیل قابلیت تفسیر مدل"
echo ""
echo "حالت‌های LLM:"
echo " llm-demo دمو کامل ادغام LLM (Gemini, LangChain, LangGraph)"
echo " llm-gemini تست API Gemini برای VQA"
echo " llm-langchain تست LangChain workflows"
echo " llm-langgraph تست LangGraph workflows پیچیده"
echo " llm-comparative مقایسه همه روش‌های LLM"
echo ""
echo "مثال‌ها:"
echo " $0 # اجرای دمو"
echo " $0 -m train -n nmn -e 20 # آموزش مدل NMN برای 20 epoch"
echo " $0 -m advanced -n transformer # اجرای مدل Transformer"
echo " $0 -m complex -d clevr # تست روی مجموعه داده CLEVR"
echo " $0 -m adversarial --visualize # تست مقاومت با تجسم"
echo " $0 -m multi-task --save-results # یادگیری چندوظیفه‌ای با ذخیره نتایج"
echo " $0 -m llm-demo # دمو کامل ادغام LLM"
echo " $0 -m llm-gemini # تست API Gemini"
echo " $0 -m llm-comparative # مقایسه روش‌های LLM"
}
check_python() {
if ! command -v python3 &> /dev/null; then
echo -e "${RED}❌ Python3 یافت نشد. لطفاً Python3 را نصب کنید.${NC}"
exit 1
fi
PYTHON_VERSION=$(python3 -c 'import sys; print(".".join(map(str, sys.version_info[:2])))')
echo -e "${GREEN}✅ Python $PYTHON_VERSION یافت شد${NC}"
}
check_pytorch() {
if ! python3 -c "import torch" &> /dev/null; then
echo -e "${RED}❌ PyTorch یافت نشد. لطفاً PyTorch را نصب کنید.${NC}"
echo "دستور نصب: pip install torch torchvision"
exit 1
fi
TORCH_VERSION=$(python3 -c "import torch; print(torch.__version__)")
echo -e "${GREEN}✅ PyTorch $TORCH_VERSION یافت شد${NC}"
}
check_dependencies() {
echo -e "${BLUE}🔍 بررسی وابستگی‌ها...${NC}"
REQUIRED_PACKAGES=("numpy" "matplotlib" "seaborn" "networkx" "PIL")
MISSING_PACKAGES=()
for package in "${REQUIRED_PACKAGES[@]}"; do
if ! python3 -c "import $package" &> /dev/null; then
MISSING_PACKAGES+=("$package")
fi
done
if [ ${
echo -e "${YELLOW}⚠️ کتابخانه‌های زیر یافت نشدند:${NC}"
for package in "${MISSING_PACKAGES[@]}"; do
echo " - $package"
done
echo ""
echo "برای نصب، دستور زیر را اجرا کنید:"
echo "pip install ${MISSING_PACKAGES[*]}"
echo ""
echo "یا برای نصب همه وابستگی‌ها:"
echo "pip install -r requirements.txt"
echo ""
read -p "آیا می‌خواهید ادامه دهید؟ (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
else
echo -e "${GREEN}✅ همه وابستگی‌ها موجود هستند${NC}"
fi
}
create_directories() {
echo -e "${BLUE}📁 ایجاد پوشه‌های مورد نیاز...${NC}"
DIRECTORIES=("visualizations" "checkpoints" "logs" "outputs" "cache" "results")
for dir in "${DIRECTORIES[@]}"; do
if [ ! -d "$dir" ]; then
mkdir -p "$dir"
echo -e "${GREEN}✅ پوشه $dir ایجاد شد${NC}"
else
echo -e "${YELLOW}ℹ️ پوشه $dir از قبل موجود است${NC}"
fi
done
}
run_training() {
echo -e "${BLUE}🚀 شروع آموزش مدل $MODEL${NC}"
echo "=================================="
python3 main.py --mode train --model "$MODEL" --epochs "$EPOCHS" --config "$CONFIG"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ آموزش با موفقیت تکمیل شد${NC}"
else
echo -e "${RED}❌ خطا در آموزش${NC}"
exit 1
fi
}
run_test() {
echo -e "${BLUE}🧪 شروع تست مدل $MODEL${NC}"
echo "=============================="
python3 main.py --mode test --model "$MODEL" --config "$CONFIG"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ تست با موفقیت تکمیل شد${NC}"
else
echo -e "${RED}❌ خطا در تست${NC}"
exit 1
fi
}
run_demo() {
echo -e "${BLUE}🎮 شروع دمو تعاملی${NC}"
echo "========================"
python3 main.py --mode demo --model "$MODEL" --config "$CONFIG"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ دمو با موفقیت تکمیل شد${NC}"
else
echo -e "${RED}❌ خطا در دمو${NC}"
exit 1
fi
}
run_benchmark() {
echo -e "${BLUE}🏁 شروع بنچمارک${NC}"
echo "=================="
python3 main.py --mode benchmark --samples "$SAMPLES" --config "$CONFIG"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ بنچمارک با موفقیت تکمیل شد${NC}"
else
echo -e "${RED}❌ خطا در بنچمارک${NC}"
exit 1
fi
}
run_advanced() {
echo -e "${BLUE}🚀 اجرای معماری‌های پیشرفته${NC}"
echo "================================="
echo -e "${YELLOW}اجرای مدل‌های پیشرفته:${NC}"
echo " - Multi-Head Cross-Modal Attention"
echo " - Memory-Augmented Networks"
echo " - Hierarchical Scene Encoder"
echo " - Dynamic Program Synthesizer"
echo " - Adversarial Robust VQA"
echo " - Multi-Task VQA System"
echo ""
python3 -c "
from src.models.advanced_architectures import demonstrate_advanced_architectures
demonstrate_advanced_architectures()
"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ معماری‌های پیشرفته با موفقیت اجرا شدند${NC}"
else
echo -e "${RED}❌ خطا در اجرای معماری‌های پیشرفته${NC}"
exit 1
fi
}
run_complex_datasets() {
echo -e "${BLUE}📊 اجرای مجموعه داده‌های پیچیده${NC}"
echo "=================================="
echo -e "${YELLOW}تست روی مجموعه داده‌های پیچیده:${NC}"
echo " - CLEVR: سوالات استدلال پیچیده"
echo " - GQA: سوالات مفهومی و چندمرحله‌ای"
echo " - VQA-CP: چالش تعمیم"
echo ""
python3 -c "
from src.data.complex_datasets import demonstrate_complex_datasets
demonstrate_complex_datasets()
"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ مجموعه داده‌های پیچیده با موفقیت تست شدند${NC}"
else
echo -e "${RED}❌ خطا در تست مجموعه داده‌های پیچیده${NC}"
exit 1
fi
}
run_adversarial() {
echo -e "${BLUE}🛡️ تست مقاومت adversarial${NC}"
echo "=========================="
echo -e "${YELLOW}تست مقاومت در برابر حملات:${NC}"
echo " - تولید نمونه‌های adversarial"
echo " - ارزیابی مقاومت مدل"
echo " - تحلیل کاهش عملکرد"
echo ""
python3 -c "
from src.evaluation.advanced_evaluator import AdversarialRobustnessEvaluator, demonstrate_advanced_evaluation
demonstrate_advanced_evaluation()
"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ تست مقاومت adversarial با موفقیت انجام شد${NC}"
else
echo -e "${RED}❌ خطا در تست مقاومت adversarial${NC}"
exit 1
fi
}
run_multi_task() {
echo -e "${BLUE}🎯 یادگیری چندوظیفه‌ای${NC}"
echo "========================"
echo -e "${YELLOW}اجرای یادگیری چندوظیفه‌ای:${NC}"
echo " - VQA + Captioning"
echo " - Object Detection"
echo " - Scene Classification"
echo " - Relationship Detection"
echo ""
python3 -c "
from src.models.advanced_architectures import MultiTaskVQASystem
import torch
system = MultiTaskVQASystem()
images = torch.randn(2, 3, 224, 224)
questions = torch.randn(2, 20, 512)
tasks = ['vqa', 'captioning', 'object_detection', 'scene_classification', 'relationship_detection']
for task in tasks:
result = system(images, questions, task=task)
print(f'وظیفه {task}: {result[\"task_output\"].shape}')
multi_result = system.multi_task_forward(images, questions)
print(f'تعداد وظایف: {len(multi_result[\"task_outputs\"])}')
"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ یادگیری چندوظیفه‌ای با موفقیت اجرا شد${NC}"
else
echo -e "${RED}❌ خطا در یادگیری چندوظیفه‌ای${NC}"
exit 1
fi
}
run_interpretability() {
echo -e "${BLUE}🔍 تحلیل قابلیت تفسیر${NC}"
echo "=========================="
echo -e "${YELLOW}تحلیل قابلیت تفسیر مدل:${NC}"
echo " - اهمیت ویژگی‌ها"
echo " - مرز تصمیم‌گیری"
echo " - جریان گرادیان"
echo " - تجسم‌های پیشرفته"
echo ""
python3 -c "
from src.visualization.advanced_visualizer import ModelInterpretabilityVisualizer, demonstrate_advanced_visualizations
demonstrate_advanced_visualizations()
"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ تحلیل قابلیت تفسیر با موفقیت انجام شد${NC}"
else
echo -e "${RED}❌ خطا در تحلیل قابلیت تفسیر${NC}"
exit 1
fi
}
run_llm_demo() {
echo -e "${BLUE}🤖 دمو کامل ادغام LLM${NC}"
echo "=========================="
echo -e "${YELLOW}اجرای دمو کامل ادغام LLM:${NC}"
echo " - Google Gemini API"
echo " - LangChain workflows"
echo " - LangGraph reasoning"
echo " - مقایسه روش‌ها"
echo ""
python3 src/demo/llm_demo.py --mode full
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ دمو کامل ادغام LLM با موفقیت اجرا شد${NC}"
else
echo -e "${RED}❌ خطا در دمو ادغام LLM${NC}"
exit 1
fi
}
run_llm_gemini() {
echo -e "${BLUE}🔮 تست API Gemini${NC}"
echo "=================="
echo -e "${YELLOW}تست Google Gemini API:${NC}"
echo " - تحلیل تصاویر"
echo " - پاسخ‌دهی به سوالات"
echo " - استدلال چندمرحله‌ای"
echo ""
python3 src/demo/llm_demo.py --mode gemini
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ تست API Gemini با موفقیت انجام شد${NC}"
else
echo -e "${RED}❌ خطا در تست API Gemini${NC}"
exit 1
fi
}
run_llm_langchain() {
echo -e "${BLUE}🔗 تست LangChain${NC}"
echo "=================="
echo -e "${YELLOW}تست LangChain workflows:${NC}"
echo " - زنجیره‌های VQA"
echo " - حافظه مکالمه"
echo " - ابزارهای سفارشی"
echo ""
python3 src/demo/llm_demo.py --mode langchain
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ تست LangChain با موفقیت انجام شد${NC}"
else
echo -e "${RED}❌ خطا در تست LangChain${NC}"
exit 1
fi
}
run_llm_langgraph() {
echo -e "${BLUE}📊 تست LangGraph${NC}"
echo "=================="
echo -e "${YELLOW}تست LangGraph workflows:${NC}"
echo " - گراف‌های استدلال پیچیده"
echo " - checkpointing"
echo " - جریان‌های چندمرحله‌ای"
echo ""
python3 src/demo/llm_demo.py --mode langgraph
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ تست LangGraph با موفقیت انجام شد${NC}"
else
echo -e "${RED}❌ خطا در تست LangGraph${NC}"
exit 1
fi
}
run_llm_comparative() {
echo -e "${BLUE}🔄 مقایسه روش‌های LLM${NC}"
echo "=========================="
echo -e "${YELLOW}مقایسه همه روش‌های LLM:${NC}"
echo " - Gemini vs LangChain vs LangGraph"
echo " - تحلیل عملکرد"
echo " - مقایسه کیفیت پاسخ‌ها"
echo ""
python3 src/demo/llm_demo.py --mode comparative
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ مقایسه روش‌های LLM با موفقیت انجام شد${NC}"
else
echo -e "${RED}❌ خطا در مقایسه روش‌های LLM${NC}"
exit 1
fi
}
run_all_tests() {
echo -e "${BLUE}🧪 اجرای همه تست‌ها${NC}"
echo "====================="
MODELS=("nmn" "scene_graph" "hybrid_vqa")
for model in "${MODELS[@]}"; do
echo -e "${YELLOW}تست مدل $model...${NC}"
python3 main.py --mode test --model "$model" --config "$CONFIG"
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ مدل $model تست شد${NC}"
else
echo -e "${RED}❌ خطا در تست مدل $model${NC}"
fi
echo ""
done
}
show_results() {
echo -e "${BLUE}📊 نمایش نتایج${NC}"
echo "================"
if [ -d "visualizations" ]; then
echo -e "${GREEN}📈 فایل‌های تجسم در پوشه visualizations:${NC}"
ls -la visualizations/
fi
if [ -d "results" ]; then
echo -e "${GREEN}📄 فایل‌های نتایج در پوشه results:${NC}"
ls -la results/
fi
if [ -f "benchmark_report.txt" ]; then
echo -e "${GREEN}📋 گزارش بنچمارک:${NC}"
cat benchmark_report.txt
fi
}
cleanup() {
echo -e "${BLUE}🧹 پاکسازی فایل‌های موقت...${NC}"
find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
find . -name "*.pyc" -delete 2>/dev/null || true
echo -e "${GREEN}✅ پاکسازی تکمیل شد${NC}"
}
main() {
while [[ $
case $1 in
-m|--mode)
MODE="$2"
shift 2
;;
-n|--model)
MODEL="$2"
shift 2
;;
-d|--dataset)
DATASET="$2"
shift 2
;;
-e|--epochs)
EPOCHS="$2"
shift 2
;;
-s|--samples)
SAMPLES="$2"
shift 2
;;
-c|--config)
CONFIG="$2"
shift 2
;;
--complexity)
COMPLEXITY="$2"
shift 2
;;
--visualize)
VISUALIZE=true
shift
;;
--save-results)
SAVE_RESULTS=true
shift
;;
-h|--help)
show_help
exit 0
;;
*)
echo -e "${RED}❌ آرگومان نامعتبر: $1${NC}"
show_help
exit 1
;;
esac
done
echo -e "${YELLOW}⚙️ تنظیمات:${NC}"
echo " حالت: $MODE"
echo " مدل: $MODEL"
echo " مجموعه داده: $DATASET"
echo " Epoch ها: $EPOCHS"
echo " نمونه‌ها: $SAMPLES"
echo " پیچیدگی: $COMPLEXITY"
echo " تجسم: $VISUALIZE"
echo " ذخیره نتایج: $SAVE_RESULTS"
echo " تنظیمات: $CONFIG"
echo ""
check_python
check_pytorch
check_dependencies
create_directories
case $MODE in
"train")
run_training
;;
"test")
run_test
;;
"demo")
run_demo
;;
"benchmark")
run_benchmark
;;
"advanced")
run_advanced
;;
"complex")
run_complex_datasets
;;
"adversarial")
run_adversarial
;;
"multi-task")
run_multi_task
;;
"interpretability")
run_interpretability
;;
"llm-demo")
run_llm_demo
;;
"llm-gemini")
run_llm_gemini
;;
"llm-langchain")
run_llm_langchain
;;
"llm-langgraph")
run_llm_langgraph
;;
"llm-comparative")
run_llm_comparative
;;
"all")
run_all_tests
;;
*)
echo -e "${RED}❌ حالت نامعتبر: $MODE${NC}"
show_help
exit 1
;;
esac
show_results
cleanup
echo -e "${GREEN}🎉 برنامه با موفقیت تکمیل شد!${NC}"
}
main "$@"

Xet Storage Details

Size:
19.4 kB
·
Xet hash:
a17dcec26882ad50bac67fead336f39bc1ff1ef06bf4c3ac144593e6eab5b86e

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.