使用 onehot_encode 不正确的输入格式时出错?

Errors using onehot_encode incorrect input format?

我正在尝试使用 mx.nd.onehot_encode 函数,这应该很简单,但我遇到了难以解析的错误。这是我正在尝试的示例用法。

m0 = mx.nd.zeros(15)
mx.nd.onehot_encode(mx.nd.array([0]), m0)

我希望这是 return 一个 15 dim 向量(与 m0 在同一地址),只有第一个元素设置为 1。相反,我得到错误:

src/ndarray/./ndarray_function.h:73: Check failed: index.ndim() == 1 && proptype.ndim() == 2 OneHotEncode only support 1d index.

ndarray 都不是 2 维的,为什么会出现此错误?我应该使用其他输入格式吗?

似乎 mxnet.ndarray.onehot_encode 要求目标 ndarray 明确具有 [1, X] 的形状。

我试过了:

m0 = mx.nd.zeros((1, 15))
mx.nd.onehot_encode(mx.nd.array([0]), m0)

没有报错。