Chainer: RuntimeWarning: недопустимое значение, встречающееся в long_scalars - PullRequest
0 голосов
/ 10 июля 2019

Я получаю эту ошибку во время выполнения и не знаю, что делать. Я использую для своей цели чужой код, построенный на цепочке. https://github.com/oyam/Semantic-Segmentation-using-Adversarial-Networks

В прошлом я удалял ключевое слово volatile из объявления переменных. Пример

loss = F.softmax_cross_entropy (self.y_real, Variable (self.xp.ones (batchsize, dtype = self.xp.int32), volatile = не self.gen.train))

до

loss = F.softmax_cross_entropy (self.y_real, Variable (self.xp.ones (batchsize, dtype = self.xp.int32)))

и добавлен Train = true для глобальной конфигурации. это создаст проблему

Ошибка времени генерации кода:

def _fast_hist(label_true, label_pred, n_class):
    mask = (label_true >= 0) & (label_true < n_class)
    hist = np.bincount(
        n_class * label_true[mask].astype(int) +
        label_pred[mask], minlength=n_class**2).reshape(n_class, n_class)
    return hist


def label_accuracy_score(label_true, label_pred, n_class):
    """Returns accuracy score evaluation result.

    - overall accuracy
    - mean accuracy
    - mean IU
    - fwavacc
    """
    hist = _fast_hist(label_true.flatten(), label_pred.flatten(), n_class)
    acc = np.diag(hist).sum() / hist.sum()
    acc_cls = np.diag(hist) / hist.sum(axis=1)
    acc_cls = np.nanmean(acc_cls)
    iu = np.diag(hist) / (hist.sum(axis=1) + hist.sum(axis=0) -np.diag(hist))
    mean_iu = np.nanmean(iu)
    freq = hist.sum(axis=1) / hist.sum()
    fwavacc = (freq[freq > 0] * iu[freq > 0]).sum()
    return acc, acc_cls, mean_iu, fwavacc

Я получаю эту ошибку во время выполнения:

/ content / drive / My Drive / chainer_version / segmentation / utils.py: 195: RuntimeWarning: недопустимое значение, встречающееся в long_scalars acc = np.diag (hist) .sum () / hist.sum ()

/ content / drive / My Drive / chainer_version / segmentation / utils.py: 196: RuntimeWarning: недопустимое значение, встречающееся в true_divide acc_cls = np.diag (hist) / hist.sum (ось = 1)

/ content / drive / My Drive / chainer_version / segmentation / utils.py: 197: время выполнения: предупреждение о пустом срезе acc_cls = np.nanmean (acc_cls)

/ content / drive / My Drive / chainer_version / segmentation / utils.py: 198: RuntimeWarning: недопустимое значение, встречающееся в true_divide iu = np.diag (hist) / (hist.sum (ось = 1) + hist.sum (axis = 0) - np.diag (исторических))

/ content / drive / My Drive / chainer_version / segmentation / utils.py: 199: время выполнения: предупреждение о пустом срезе mean_iu = np.nanmean (iu)

/ content / drive / My Drive / chainer_version / segmentation / utils.py: 200: RuntimeWarning: недопустимое значение, встречающееся в true_divide freq = hist.sum (axis = 1) / hist.sum ()

/ content / drive / My Drive / chainer_version / segmentation / utils.py: 201: RuntimeWarning: недопустимое значение, обнаруженное при большем fwavacc = (freq [freq> 0] * iu [freq> 0]). sum ()

...