Buckets:
| 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.