Kmeans 作为功能模型中的自定义层

Kmeans as custom layer in functional model

我们计划使用 kmeans 来拆分我们的数据,并有 10 个独立的全连接模型来分别从 kmeans 估计每组的结果。

一个明显的方法是在开始时有 10 个单独的 tfjs 模型和单独的 kmeans。

因为 tfjs 支持功能模型和自定义层。另一种方法是将 kmeans 作为第一个自定义层,然后将几个密集层连接到它。是否可以使用现有层 API 接收 20 个张量,执行 kmeans 并将 10 个不同的 20 个张量作为下一层的输出?您认为这种方法有什么问题吗?还有其他选择吗?

Kmeans 尚未在 tfjs 中实现。如果它本身不能被视为一个层。但是,您可以在 class 中创建一个两阶段模型,假设您自己设法拥有自己的 kmeans 实现。

您只需使用条件语句将一个模型的结果传递给另一个模型。第一个模型 -kmeans - 将输出数据的 class,第二个模型 - 10 个 - 根据第一个模型的输出选择。

话虽如此,所有这些都可以使用顺序 API tf.sequential 或函数 tf.model 一次性完成。 js 中有 kmeans 实现,它将 return js 数组作为向量。这些数组可以转换为张量,其形状将决定层的形状。使用 FCNN ,我们可以得到每个 kmeans class.

的输出