Use set_default_dtype for uniform dtype init, assert batch size match in CrossAttention
Browse files- modeling_slip.py +7 -0
modeling_slip.py
CHANGED
|
@@ -513,6 +513,11 @@ class SLIPModel(SLIPPreTrainedModel):
|
|
| 513 |
def __init__(self, config: SLIPConfig):
|
| 514 |
super().__init__(config)
|
| 515 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 516 |
# Sensor encoder
|
| 517 |
sensor_cfg = config.sensor_encoder
|
| 518 |
self.sensor_encoder = SensorTransformerModel(**sensor_cfg)
|
|
@@ -544,6 +549,8 @@ class SLIPModel(SLIPPreTrainedModel):
|
|
| 544 |
self.temperature = nn.Parameter(torch.tensor(math.log(1 / 0.07)))
|
| 545 |
self.temperature_max = math.log(1 / 0.07)
|
| 546 |
|
|
|
|
|
|
|
| 547 |
def embed_sensor(self, sensors, sensor_attn_mask=None, time_index=None):
|
| 548 |
sensor_tokens, attn_mask = self.sensor_encoder(sensors, sensor_attn_mask, time_index=time_index)
|
| 549 |
if hasattr(self, "img_attn_pool"):
|
|
|
|
| 513 |
def __init__(self, config: SLIPConfig):
|
| 514 |
super().__init__(config)
|
| 515 |
|
| 516 |
+
# Use config.torch_dtype (set by HF from_pretrained or config.json)
|
| 517 |
+
dtype = getattr(config, "torch_dtype", None) or torch.float32
|
| 518 |
+
prev_dtype = torch.get_default_dtype()
|
| 519 |
+
torch.set_default_dtype(dtype)
|
| 520 |
+
|
| 521 |
# Sensor encoder
|
| 522 |
sensor_cfg = config.sensor_encoder
|
| 523 |
self.sensor_encoder = SensorTransformerModel(**sensor_cfg)
|
|
|
|
| 549 |
self.temperature = nn.Parameter(torch.tensor(math.log(1 / 0.07)))
|
| 550 |
self.temperature_max = math.log(1 / 0.07)
|
| 551 |
|
| 552 |
+
torch.set_default_dtype(prev_dtype)
|
| 553 |
+
|
| 554 |
def embed_sensor(self, sensors, sensor_attn_mask=None, time_index=None):
|
| 555 |
sensor_tokens, attn_mask = self.sensor_encoder(sensors, sensor_attn_mask, time_index=time_index)
|
| 556 |
if hasattr(self, "img_attn_pool"):
|