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の名前。