J'essaie d'utiliser tensorflow.contrib.learn.KMeansClustering
dans le cadre d'un graphique dans Tensorflow. Je voudrais l'utiliser comme un composant d'un graphique, en me donnant des prédictions et des centres. La partie pertinente du code est le suivant:Utilisation de l'estimateur tflearn de KMeans dans le cadre d'un graphique dans tensorflow
with tf.variable_scope('kmeans'):
kmeans = KMeansClustering(num_clusters=num_clusters,
relative_tolerance=0.0001)
kmeans.fit(input_fn= (lambda : [X, None]))
clusters = kmeans.clusters()
init_vars = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init_vars, feed_dict={X: full_data_x})
clusters_np = sess.run(clusters, feed_dict={X: full_data_x})
Cependant, je reçois l'erreur suivante:
ValueError: Tensor("kmeans/strided_slice:0", shape=(), dtype=int32) must be from the same graph as Tensor("sub:0", shape=(), dtype=int32).
Je crois que c'est parce que est un estimateur k-moyennes de TFLearn; ce qui serait plus proche d'un graphique entier que d'un seul module. Est-ce exact? Puis-je le transformer en un module du graphique par défaut? Si non, y a-t-il une fonction pour faire des KMeans dans un autre graphe?
Merci!
J'ai regardé votre suggestion et la [documentation] (https://www.tensorflow.org/versions/master/api_docs/python/tf/contrib/factorization/KMeans) pour la fonction. Si je ne me trompe pas, ils ne fournissent que des distances entre les entrées et les centres et les étiquettes pour chaque entrée. Cependant, je cherche les centres eux-mêmes, une idée de comment les obtenir? Merci! – etal
Ne ressemble pas à un accesseur public. Vous pouvez soit faire la moyenne des points en utilisant les assignations de cluster, ou appeler '_create_variables' dans un' variable_scople' avec 'reuse = True' (vous devrez aussi envelopper la création de variables d'origine dans une portée variable). –
Je peux voir que _create_variables génère des centres, mais je ne vois pas comment/quand ils sont influencés par les données d'entrée. Comment utilisez-vous le variable_scope pour le faire? – etal