2016-11-11 13 views
1

MXNetでCustomOpクラスを使用して新しい変換レイヤーを作成しています。このレイヤーには、レイヤーのハイパーパラメーターとしてoutput_dimensionalityがあります。この次元は、自動的にデータから推測されるが、ネットワークグラフを構築して、発信者によって選ばれる必要があるので、追加のコンストラクタ引数をMXNetのカスタムレイヤーに渡します。

だろう
net = mx.symbol.Custom(data=data, op_type='mycustomop', output_dimensionality=1024) 

のように、新しいシンボルのコンストラクタの引数でなければなりませんすることはできません私のCustomOpサブクラスの__init__コンストラクタによって消費されます。私はこれをしようとする。しかし、私が手:

Traceback (most recent call last): File "_ctypes/callbacks.c", line 314, in 'calling callback function' File "python/mxnet/operator.py", line 602, in creator op_prop = prop_cls(**kwargs) TypeError: __init__() got an unexpected keyword argument 'output_dimensionality' Segmentation fault (core dumped)

答えて

1

これが問題になることはありませんが、あなたはCustomOpクラスとCustomOpPropsクラスの両方であなたのパラメータを指定する必要があります。

ここにはexample how to do thatがあります。 に渡される2つのカスタムパラメータ:pos_grad_scaleとneg_grad_scaleがあり、それらはCustomOpとCustomOpPropsの両方で受け入れられます。

また、float()機能によって浮動小数点への変換があることにも注意してください。これは、そのようなパラメータは常に文字列として(配列であっても)渡されるため、文字列から整数を戻す必要があるためです。

関連する問題