apollonia-7b / vision_tower /configuration_hybrid.py
nisten's picture
Add files using upload-large-folder tool
deb6397 verified
raw
history blame
1.83 kB
import numpy as np
import torch
import torch.nn as nn
from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union
import os
import torch.nn.functional as F
from transformers.modeling_utils import PreTrainedModel
from transformers.configuration_utils import PretrainedConfig
from transformers import AutoConfig
from collections import OrderedDict
class HybridTowerConfig(PretrainedConfig):
model_type = "hybrid_vision_tower"
def __init__(self, configs=None, **kwargs):
"""
Initializes the HybridTowerConfig.
Args:
configs (dict, optional): A dictionary where keys are component names and values are
instances of configurations that have a `to_dict()` method.
**kwargs: Additional keyword arguments that are passed to the superclass.
"""
super().__init__(**kwargs)
self.configs = {}
if configs is not None:
if not isinstance(configs, dict):
raise TypeError("configs must be a dictionary where keys are component names and values are configuration objects.")
for component_name, config in configs.items():
if hasattr(config, 'to_dict'):
self.configs[component_name] = config.to_dict()
else:
raise TypeError(f"The configuration for '{component_name}' does not have a to_dict() method and cannot be serialized.")
def to_dict(self):
"""
Serializes this instance to a Python dictionary.
Returns:
dict: A dictionary containing all the keys and values of this configuration instance.
"""
config_dict = super().to_dict()
config_dict['configs'] = self.configs
return config_dict