0
テンソルフローのKMeansClusteringにあらかじめ定義されたinital_centersを使用しようとしました。ValueError for tf.contrib.learn.KMeansClustering(定義済みのinital_clustersを使用)
/lib/python3.5/site-packages/tensorflow/python/ops/variables.py in _init_from_args(self, initial_value, trainable, collections, validate_shape, caching_device, name, dtype, expected_shape, constraint)
356 if not initial_value_shape.is_fully_defined():
357 raise ValueError("initial_value must have a shape specified: %s" %
--> 358 self._initial_value)
359
360 # If 'initial_value' makes use of other variables, make sure we don't
ValueError: initial_value must have a shape specified: Tensor("ones:0", shape=(?,), dtype=int64)
ので、事前に定義された使用するための正しい方法は何である:出力誤差がある
import tensorflow as tf
import numpy as np
K=5
X = np.random.random((100,1))
m1 = min(X)
m2 = max(X)
init_c = np.linspace(m1[0], m2[0], num=K).reshape(-1,1)
print(init_c)
km = tf.contrib.learn.KMeansClustering(num_clusters=K,
relative_tolerance=0.0001, initial_clusters =init_c)
def train_input_fn():
data = tf.constant(X, tf.float32)
return (data, None)
km.fit(input_fn=train_input_fn)
(sklearnでは、 "関数kmeans(n_clusters = K、INIT = INIT)" と非常に簡単です)テンソル流のKmeansの初期中心?