Site icon Amelt.net

Chainer:’module’ object has no attribute ‘mean_absolute_error’

Amelt

Amelt

This post is also available in: 日本語 (Japanese)

Chainerでディープラーニングのコードを走らせる際に以下のようなエラーが出て困った事がありましたので、メモ代わりに書いています。

AttributeError: 'module' object has no attribute 'mean_absolute_error'

原因

この mean_absolute_error() は 以下のリンクにあるように v1.18.0 のchainerにはモジュールとして組み込まれていないのが原因らしいです。
https://github.com/chainer/chainer/issues/1987

対策

以下のgithubのページから mean_absolute_error.py をダウンロードして、自分でモジュールとして組み込むと動作します(検証済み)。
https://github.com/chainer/chainer/blob/master/chainer/functions/loss/mean_absolute_error.py

mean_absolute_error.py の置き場所は、上記のページのとおりにして
chainer>functions>loss フォルダ以下に mean_absolute_error.py として作成します。

モジュールの呼び出し方は、lossフォルダ以下の __init__.py を修正する方法でもよさげですが、mean_absolute_error.py を自分で付け足したことを後で分かるように明示したかったので、以下のように呼び出しました。
呼び出し方によってコードを修正する必要がありますので、ご注意ください。

from chainer.functions.loss.mean_absolute_error import mean_absolute_error
No tags for this post.