0

我有一个使用mobilenetv2训练的regressor mlmodel。最后几层如下:

在此处输入图像描述

我想将此 mlmodel 制作为可更新的 mlmodel 并训练 innerProduct 层(pytorch 中的全连接层)。我已将引用此博客的 mlmodel 转换为: https ://machinethink.net/blog/coreml-training-part4/ 。但我发现可更新的 mlmodel 的第二个训练输入默认设置为“score_true”,它只是一个值(数据类型:int32)。

在此处输入图像描述

然而,softmax 层的输出是一个具有 10 个浮点值的向量。那么如何将第二个训练输入设置为向量,因为基本事实是具有 10 个浮点值的向量。

我查找了CrossEntropyLoss int coremltools3.3的API。它的输入参数可以接受长度为 N 的向量。那么如何将默认生成的 score_true 从 intVal 更改为向量?非常感谢。

在此处输入图像描述

4

1 回答 1

0

您传递给score_trueMLMultiArray 的是类的索引。您不需要自己对其进行一次热编码,即无需将其转换为长度为 N 的向量。

于 2020-03-12T20:18:02.410 回答