chainer.utils.
experimental
(api_name)[source]¶
ユーザが experimental featureを使用していることを宣言する。
APIの開発者は、この関数を呼び出すことで experimental (試験的なもの)としてマークできます。ユーザがexperimental APIsを呼び出す場合, FutureWarning
が発行されます。. The presentation of FutureWarning
の提示はchainer.disable_experimental_feature_warning
を True
に設定することで無効にできます。デフォルトは False
が設定されています。
基本的な使用方法はAPI名に添ってexperimentalとしてマークしたい関数やメソッド中での呼び出しです。
from chainer import utils
def f(x):
utils.experimental('chainer.foo.bar.f')
# 下記のf()の実装。
f(1)
... FutureWarning: chainer.foo.bar.f is experimental.
The interface can change in the future. ...
クラス全体を experimentalとすることも可能です。その場合、この関数を __init__
メソッド内で呼び出さなければなりません。
class C():
def __init__(self):
utils.experimental('chainer.foo.C')
C()
... FutureWarning: chainer.foo.C is experimental.
The interface can change in the future. ...
クラス自体ではなく __init__
メソッドのみマークしたい場合、そのAPIの名称を明示的にフィードすることが推奨されています。
class D():
def __init__(self):
utils.experimental('D.__init__')
D()
... FutureWarning: D.__init__ is experimental.
The interface can change in the future. ...
現在、non-experimentalをマークする方法についてはexperimentalのような洗練された方法がありません。しかし、明示的にブランチすることで、そのような使用法をサポートすることができます。
def g(x, experimental_arg=None):
if experimental_arg is not None:
utils.experimental('experimental_arg of chainer.foo.g')
Parameters: | api_name (str) – experimentalとしてマークされるAPIの名前。 |
---|