我如何在 tensorflow.js 中定义自己的标签

How may I define my own labels in tensorflow.js

我有任何传感器的三维数据 x,y,z。我正在创建 tensor 这些值,例如 tf.tensor3d([[[x1], [y1], [z1]], [[x2], [y2], [z3]], ....... so on]) 。但我只有两个不是数值的标签,如 [standing , sitting]。我想将单个 label 分配给 x,y,z 的三个值的组合。我如何使用自己的标签在 tensorflow.js 中训练我的 model

第一件事是创建标签的索引。

ES2019

const labelArray = ["standing", "sitting"]
const mapIndexLabel = Object.fromEntries(Object.entries({...labelArray}).map(([a, b]) => [b, +a])) // {standing: 0, sitting: 1}

标签张量应该是单热编码。以下是如何创建它的示例。

|features   | labels   |
|-----------|----------|
| feature0  | standing |
| feature1  | sitting  |
| feature1  | sitting  |

标签索引数组应该是[0, 1, 1](索引取自上面的对象)。标签张量是索引的单热编码

labelsTensor = tf.onehot([0, 1, 1], numberOfUniqueLabels) // numberOfUniqueLabels = 2 in this case

然后模型可以通过model.fit(featuresTensor, labelsTensor)

进行训练