我已经使用以下配置对时尚 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 层的输出,以检查对模型准确性的影响。
1 回答
0
你问的其实是两个问题:
- 如何仅在某些配置中应用操作而不在其他配置中应用操作?
- 如何应用 k-means?
以下是答案:
要基于某些 tensorflow 变量的值应用操作,
do_clustering您可以使用tf.cond:maybe_clustered_ouput = tf.cond(do_clustering, lambda: my_clustering_operation(input), lambda: input)要应用 k-means 聚类,您可以使用
tf.compat.v1.estimator.experimental.KMeans(并在上面的代码片段中替换它而不是 my_clustering_operation )
祝你好运 :)
于 2020-06-05T11:35:48.747 回答