not good but great

プログラミング、アート、映画・本の感想について書きます。

Chainerで「RuntimeError: cuDNN does not allow an eps value less than 1e-5」

epsの関するエラー

  • RuntimeError: cuDNN does not allow an eps value less than 1e-5.

cudnn.hで「CUDNN_BN_MIN_EPSILON」の定義を見る。

#define CUDNN_BN_MIN_EPSILON 1e-5 // Minimum epsilon allowed to be used in the Batch Normalization formula

epsの値を変更

batch_normalization.pyを編集する。

chainer/batch_normalization.py at master · chainer/chainer · GitHub

# Note: cuDNN v5 requires that eps be greater than 1e-5. Otherwise, an
# error will occur.
# See CUDNN_BN_MIN_EPSILON value in cudnn.h to verify minimum allowable
# value.
self.eps = eps
if cuda.cudnn_enabled and use_cudnn:
    if eps < 1e-5:
        msg = 'cuDNN does not allow an eps value less than 1e-5.'
        self.eps = 1e-4
        #raise RuntimeError(msg)

「1e-4」に変更してみた。この対処法が良いのかはわからないw