| """Sybil model configuration""" |
|
|
| from transformers import PretrainedConfig |
| from typing import Optional, List, Dict |
| import json |
|
|
|
|
| class SybilConfig(PretrainedConfig): |
| """ |
| This is the configuration class to store the configuration of a [`SybilForRiskPrediction`]. |
| It is used to instantiate a Sybil model according to the specified arguments, defining the model architecture. |
| |
| Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. |
| |
| Args: |
| hidden_dim (`int`, *optional*, defaults to 512): |
| Dimensionality of the hidden representations. |
| dropout (`float`, *optional*, defaults to 0.0): |
| The dropout probability for all fully connected layers. |
| max_followup (`int`, *optional*, defaults to 6): |
| Maximum number of years for risk prediction. |
| num_images (`int`, *optional*, defaults to 208): |
| Number of CT scan slices to process. |
| img_size (`List[int]`, *optional*, defaults to `[512, 512]`): |
| Size of input images after preprocessing. |
| voxel_spacing (`List[float]`, *optional*, defaults to `[0.703125, 0.703125, 2.5]`): |
| Target voxel spacing for CT scans (row, column, slice thickness). |
| censoring_distribution (`str`, *optional*, defaults to "weibull"): |
| Distribution used for censoring in survival analysis. |
| ensemble_size (`int`, *optional*, defaults to 5): |
| Number of models in the ensemble. |
| calibrator_data (`Dict`, *optional*): |
| Calibration data for risk score adjustment. |
| """ |
|
|
| model_type = "sybil" |
|
|
| def __init__( |
| self, |
| hidden_dim: int = 512, |
| dropout: float = 0.0, |
| max_followup: int = 6, |
| num_images: int = 208, |
| img_size: List[int] = None, |
| voxel_spacing: List[float] = None, |
| censoring_distribution: str = "weibull", |
| ensemble_size: int = 5, |
| calibrator_data: Optional[Dict] = None, |
| initializer_range: float = 0.02, |
| **kwargs |
| ): |
| super().__init__(**kwargs) |
|
|
| self.hidden_dim = hidden_dim |
| self.dropout = dropout |
| self.max_followup = max_followup |
| self.num_images = num_images |
| self.img_size = img_size if img_size is not None else [512, 512] |
| self.voxel_spacing = voxel_spacing if voxel_spacing is not None else [0.703125, 0.703125, 2.5] |
| self.censoring_distribution = censoring_distribution |
| self.ensemble_size = ensemble_size |
| self.calibrator_data = calibrator_data |
| self.initializer_range = initializer_range |