向MXN中的自定义层传递其他构造函数参数

2024-05-23 20:09:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用MXNet中的CustomOp类来创建一个新的转换层。此层将output_dimensionality作为层的超参数。这个维度不能从数据中自动推断出来,但是需要由构建网络图的调用者选择,所以它应该是新符号的构造函数参数,比如

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)


Tags: 数据inoutputdata参数initlinemxnet
1条回答
网友
1楼 · 发布于 2024-05-23 20:09:22

这应该不是问题,但您需要在CustomOp类和customoprops类中指定参数。在

这是example how to do that。有2个自定义参数传递给init:pos_grad_scale和neg_grad_scale,它们在CustomOp和customoprops中都被接受。在

还要注意,有一个通过float()函数到float的转换。这样做是因为这样的参数总是作为字符串传递的(即使它是数组),所以您需要将整数从字符串转换回来。在

相关问题 更多 >