0

我已经使用以下配置对时尚 MNIST 数据训练了 CNN:Conv-Pool-Dropout-Conv-Pool-Dropout-Flat-Dense-Dropout-Output 我想将配置更改为:Conv-Clustering-Pool-Dropout- Conv-Clustering-Pool-Dropout-Flat-Dense-Clustering-Dropout-Output 但是,我希望这个新配置仅用于测试而不是训练模型(我可以使用训练模型中的权重并将它们设置为具有聚类的模型配置)。有没有办法使用 tensorflow 添加聚类层?我想使用聚类质心来表示 Conv 和 Dense 层的输出,以检查对模型准确性的影响。

4

1 回答 1

0

你问的其实是两个问题:

  1. 如何仅在某些配置中应用操作而不在其他配置中应用操作?
  2. 如何应用 k-means?

以下是答案:

  1. 要基于某些 tensorflow 变量的值应用操作,do_clustering您可以使用tf.cond

    maybe_clustered_ouput = tf.cond(do_clustering,
                                    lambda: my_clustering_operation(input),
                                    lambda: input)
    
  2. 要应用 k-means 聚类,您可以使用tf.compat.v1.estimator.experimental.KMeans(并在上面的代码片段中替换它而不是 my_clustering_operation )

祝你好运 :)

于 2020-06-05T11:35:48.747 回答