FoodClassifier-ViT / INSTALLATION.md
mahmoudalrefaey's picture
Upload 7 files
2417fa0 verified
# Installation Guide for FoodViT
## Prerequisites
- Python 3.8 or higher
- pip package manager
- At least 4GB RAM (8GB recommended)
- GPU support optional but recommended for faster inference
## Installation Steps
### 1. Clone or Download the Project
Make sure you have all the project files in your directory:
- `app.py` - Main application
- `predict.py` - Command line tool
- `config.py` - Configuration
- `requirements.txt` - Dependencies
- `model/bestViT_PT.pth` - Trained model
- All utility and interface files
### 2. Create a Virtual Environment (Recommended)
```bash
# Create virtual environment
python -m venv foodvit_env
# Activate virtual environment
# On Windows:
foodvit_env\Scripts\activate
# On macOS/Linux:
source foodvit_env/bin/activate
```
### 3. Install Dependencies
```bash
# Install PyTorch first (choose appropriate version for your system)
# For CPU only:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu
# For CUDA (if you have NVIDIA GPU):
# pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
# Install other dependencies
pip install -r requirements.txt
```
### 4. Troubleshooting Dependency Issues
If you encounter dependency conflicts, try this step-by-step approach:
```bash
# 1. Install core dependencies first
pip install torch torchvision
pip install transformers==4.28.0
pip install huggingface-hub==0.15.1
pip install accelerate==0.20.3
# 2. Install image processing libraries
pip install Pillow opencv-python albumentations
# 3. Install Gradio
pip install gradio==3.35.2
# 4. Install other utilities
pip install numpy scikit-learn datasets
```
### 5. Alternative: Use Conda
If you prefer conda:
```bash
# Create conda environment
conda create -n foodvit python=3.9
conda activate foodvit
# Install PyTorch
conda install pytorch torchvision -c pytorch
# Install other packages
pip install transformers==4.28.0 huggingface-hub==0.15.1
pip install gradio==3.35.2
pip install -r requirements.txt
```
## Testing the Installation
### 1. Run Basic Tests
```bash
python simple_test.py
```
This should show all tests passing.
### 2. Test the Web Interface
```bash
python app.py
```
Then open your browser to `http://localhost:7860`
### 3. Test Command Line Tool
```bash
# Test help
python predict.py --help
# Test with a sample image (if you have one)
python predict.py path/to/your/image.jpg
```
## Common Issues and Solutions
### Issue: "cannot import name 'split_torch_state_dict_into_shards'"
**Solution**: This is a version compatibility issue. Try:
```bash
pip uninstall huggingface-hub transformers accelerate
pip install huggingface-hub==0.15.1 transformers==4.28.0 accelerate==0.20.3
```
### Issue: CUDA/GPU not working
**Solution**:
1. Check if you have NVIDIA GPU
2. Install appropriate CUDA version
3. Install PyTorch with CUDA support
4. Or set device to 'cpu' in `config.py`
### Issue: Model file not found
**Solution**: Ensure `model/bestViT_PT.pth` exists in the project directory.
### Issue: Memory errors
**Solution**:
1. Close other applications
2. Use CPU instead of GPU
3. Reduce batch size in configuration
## System Requirements
### Minimum Requirements
- Python 3.8+
- 4GB RAM
- 500MB disk space
### Recommended Requirements
- Python 3.9+
- 8GB RAM
- NVIDIA GPU with CUDA support
- 1GB disk space
## Verification
After successful installation, you should be able to:
1. ✅ Run `python simple_test.py` without errors
2. ✅ Start the web interface with `python app.py`
3. ✅ Use command line tool with `python predict.py --help`
4. ✅ Upload images and get predictions in the web interface
## Getting Help
If you encounter issues:
1. Check the error messages carefully
2. Ensure all dependencies are installed correctly
3. Try the troubleshooting steps above
4. Check if your Python version is compatible
5. Verify the model file exists and is not corrupted
## Next Steps
Once installation is complete:
1. **Web Interface**: Run `python app.py` and visit `http://localhost:7860`
2. **Command Line**: Use `python predict.py` for batch processing
3. **Customization**: Edit `config.py` to modify settings
4. **Development**: Use the modular structure for extending functionality