1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/william_lzw-micro-ocr

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
loss.py 790
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
william Отправлено 19.10.2021 19:25 2693d87
from typing import Dict
import torch
from torch import nn, Tensor
from torch.nn import CTCLoss as TorchCTCLoss
class CTCLoss(nn.Module):
def __init__(self, blank_idx: int, reduction: str = 'sum'):
super().__init__()
self.loss_func = TorchCTCLoss(
blank=blank_idx, reduction=reduction, zero_infinity=True)
def forward(self,
pred: Tensor,
label: Tensor,
label_length: Tensor) -> Dict[str, Tensor]:
pred = pred.permute(1, 0, 2)
batch_size = pred.size(1)
pred = pred.log_softmax(2)
preds_lengths = torch.tensor(
[pred.size(0)] * batch_size, dtype=torch.long)
loss = self.loss_func(pred, label, preds_lengths, label_length)
return dict(loss=loss)

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/william_lzw-micro-ocr.git
git@api.gitlife.ru:oschina-mirror/william_lzw-micro-ocr.git
oschina-mirror
william_lzw-micro-ocr
william_lzw-micro-ocr
master