Tensorflowのグラフの一部としてtensorflow.contrib.learn.KMeansClustering
を使用しようとしています。私はそれをグラフの構成要素として使用して、私に予測と中心を与えたいと考えています。コードの関連部分は以下の通りです:テンソルフローのグラフの一部としてKMeans tflearn estimatorを使用する
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})
はしかし、私は次のエラーを取得する:
ValueError: Tensor("kmeans/strided_slice:0", shape=(), dtype=int32) must be from the same graph as Tensor("sub:0", shape=(), dtype=int32).
私はK平均法がTFLearn推定であるためであると考えています。これは単一のモジュールよりもグラフ全体に似ています。あれは正しいですか?それをデフォルトのグラフのモジュールに変換できますか?そうでない場合は、別のグラフ内でKMeansを実行する関数がありますか?
ありがとうございます!
私はあなたの提案と機能に関する[documentation](https://www.tensorflow.org/versions/master/api_docs/python/tf/contrib/factorization/KMeans)を見てきました。私が間違っていなければ、彼らは入力からセンタとラベルまでの距離をすべての入力に対して提供します。しかし、私はセンター自体を探しています、どのようにそれらを取得するか考えていますか?ありがとう! – etal
公共のアクセサーのように見えません。クラスターの割り当てを使ってポイントを平均化するか、 'reuse = True'を使って' variable_scople'で '_create_variables'を呼ぶことができます(元の変数の作成も可変スコープでラップする必要があります)。 –
私は_create_variablesがセンターを出力するのを見ることができますが、入力データの影響を受ける方法や時期はわかりません。 variable_scopeをどうやって使っていますか? – etal