r""" labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*): Labels for computing the sequence classification/regression loss. Indices should be in `[0, ..., config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss
(
self,
input_ids: Optional[torch.LongTensor] = None,
attention_mask: Optional[torch.Tensor] = None,
position_ids: Optional[torch.LongTensor] = None,
past_key_values: Optional[List[torch.FloatTensor]] = None,
inputs_embeds: Optional[torch.FloatTensor] = None,
labels: Optional[torch.LongTensor] = None,
use_cache: Optional[bool] = None,
output_attentions: Optional[bool] = None,
output_hidden_states: Optional[bool] = None,
return_dict: Optional[bool] = None,
)
| 1628 | |
| 1629 | @add_start_docstrings_to_model_forward(LLAMA_INPUTS_DOCSTRING) |
| 1630 | def forward( |
| 1631 | self, |
| 1632 | input_ids: Optional[torch.LongTensor] = None, |
| 1633 | attention_mask: Optional[torch.Tensor] = None, |
| 1634 | position_ids: Optional[torch.LongTensor] = None, |
| 1635 | past_key_values: Optional[List[torch.FloatTensor]] = None, |
| 1636 | inputs_embeds: Optional[torch.FloatTensor] = None, |
| 1637 | labels: Optional[torch.LongTensor] = None, |
| 1638 | use_cache: Optional[bool] = None, |
| 1639 | output_attentions: Optional[bool] = None, |
| 1640 | output_hidden_states: Optional[bool] = None, |
| 1641 | return_dict: Optional[bool] = None, |
| 1642 | ) -> Union[Tuple, TokenClassifierOutput]: |
| 1643 | r""" |
| 1644 | labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*): |
| 1645 | Labels for computing the sequence classification/regression loss. Indices should be in `[0, ..., |
| 1646 | config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss), If |
| 1647 | `config.num_labels > 1` a classification loss is computed (Cross-Entropy). |
| 1648 | """ |
| 1649 | return_dict = return_dict if return_dict is not None else self.config.use_return_dict |
| 1650 | |
| 1651 | outputs = self.model( |
| 1652 | input_ids, |
| 1653 | attention_mask=attention_mask, |
| 1654 | position_ids=position_ids, |
| 1655 | past_key_values=past_key_values, |
| 1656 | inputs_embeds=inputs_embeds, |
| 1657 | use_cache=use_cache, |
| 1658 | output_attentions=output_attentions, |
| 1659 | output_hidden_states=output_hidden_states, |
| 1660 | return_dict=return_dict, |
| 1661 | ) |
| 1662 | sequence_output = outputs[0] |
| 1663 | sequence_output = self.dropout(sequence_output) |
| 1664 | logits = self.score(sequence_output) |
| 1665 | |
| 1666 | loss = None |
| 1667 | if labels is not None: |
| 1668 | loss_fct = CrossEntropyLoss() |
| 1669 | loss = loss_fct(logits.view(-1, self.num_labels), labels.view(-1)) |
| 1670 | |
| 1671 | if not return_dict: |
| 1672 | output = (logits,) + outputs[2:] |
| 1673 | return ((loss,) + output) if loss is not None else output |
| 1674 | |
| 1675 | return TokenClassifierOutput( |
| 1676 | loss=loss, |
| 1677 | logits=logits, |
| 1678 | hidden_states=outputs.hidden_states, |
| 1679 | attentions=outputs.attentions, |
| 1680 | ) |
nothing calls this directly
no outgoing calls
no test coverage detected