efficient-Net / README.md
ezelpub's picture
Updated the Latitude and Longitude mean
4be24cd verified
|
raw
history blame
1.84 kB

Image to GPS Model: DINO-ResNet Fusion

Training Data Statistics

The following mean and standard deviation values were used to normalize the GPS coordinates:

  • Latitude Mean: {39.95156391970743}
  • Latitude Std: {0.0007633062105681285}
  • Longitude Mean: {-75.19148737056214}
  • Longitude Std: {0.0007871346840888362}

How to use the model

Please include the definition of the model first before loading the checkpoint:

# Import all the dependencies
import torch
import torch.nn as nn
import torchvision.models as models
import torchvision.transforms as transforms
from torch.utils.data import DataLoader, Dataset
from transformers import AutoImageProcessor, AutoModelForImageClassification, AutoModel
from huggingface_hub import PyTorchModelHubMixin
from PIL import Image
import os
import numpy as np

class EfficientNetGPSModel(nn.Module):
    def __init__(self, eff_name="efficientnet_b0", num_outputs=2):
        super(EfficientNetGPSModel, self).__init__()
        
        # Load the EfficientNet backbone
        self.efficientnet = getattr(models, eff_name)(pretrained=True)
        
        # Replace the classifier head while keeping the overall structure simple
        in_features = self.efficientnet.classifier[1].in_features
        self.efficientnet.classifier = nn.Sequential(
            nn.Linear(in_features, num_outputs)  # Directly map to GPS coordinates
        )

    def forward(self, x):
        return self.efficientnet(x)
    
    def save_model(self, save_path):
        self.save_pretrained(save_path)

    def push_model(self, repo_name):
        self.push_to_hub(repo_name)

Then you can download the model from HF by running, and this will also load the checkpoint automatically:

model = EfficientNetGPSModel.from_pretrained("cis519/efficient-net-gps")