gpt4 book ai didi

python - 将额外的构造函数参数传递给 MXNet 中的自定义层

转载 作者:太空宇宙 更新时间:2023-11-03 15:58:36 28 4
gpt4 key购买 nike

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

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

它将由我的 CustomOp 子类的 __init__ 构造函数使用。但是当我尝试这个时,我得到:

回溯(最近一次调用最后一次):
文件“_ctypes/callbacks.c”,第 314 行,“调用回调函数”
文件“python/mxnet/operator.py”,第 602 行,创建者中
op_prop = prop_cls(**kwargs)
类型错误:__init__() 得到意外的关键字参数“output_dimensionity”
段错误(核心转储)

最佳答案

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

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

另请注意,通过 float() 函数可以转换为 float。这样做是因为这样的参数始终作为字符串传递(即使它是数组),因此您需要将整数从字符串转换回。

关于python - 将额外的构造函数参数传递给 MXNet 中的自定义层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40539662/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com