関数kmeans tensorflowベースモデルアルゴリズム

tensorflow関数kmeansアルゴリズムの実行。

 

コードは以下の通りであります:

 

__future__インポートprint_function #すべてのGPUを無視するには、TFランダムフォレストは、ITからメリットはありません。インポートOSのNP ASインポートnumpyのインポートtensorflow TF AS tensorflow.contrib.factorizationインポート関数kmeansから[ "CUDA_VISIBLE_DEVICES"]はos.environ = "" #インポートMNISTデータtensorflow.examples.tutorials.mnistインポートINPUT_DATAからMNIST = input_data.read_data_sets( "./ TMP /データ/"、one_hot = TRUE)full_data_x mnist.train.images = #パラメータnum_steps = 50#合計トレーニングステップの数= 1024#バッチ番号BATCH_SIZE クラスタ用のK = 25#番号num_classesを= 10#10ベースのデジタルnum_features = 784#28 * 28 = > 784 クラス特徴#入力画像
























= Tf.placeholder X-(tf.float32、形状=なし、NUM_FEATURES])
タグ(中心点、テストに割り当てられたタグ)
Y = tf.placeholder(tf.float32、形状=なし、num_classes]) 関数kmeansパラメータ関数kmeans関数kmeans =(X-入力=、K = num_clusters、distance_metric = '余弦'、               use_mini_batch = TRUE) 確立関数kmeans図training_graph = kmeans.training_graph()。#1.4 Tensorflow:lenのIF(training_graph)> 6 +   (all_scores、cluster_idx、スコア、cluster_centers_initialized、     cluster_centers_var、init_op、train_op)= training_graph 他:   (all_scores、cluster_idx、スコア、cluster_centers_initialized、     init_op、train_op)= training_graph















= FIXためcluster_idx cluster_idx [0]#タプルcluster_idxある
avg_distance = tf.reduce_mean(スコア)#初期化パラメータinit_varsをtf.global_variables_initializer =()#TensorFlowオープンセッションのSES = tf.Session(HTTP://www.my516 .COM) 初期化sess.run(init_vars、feed_dict = {X-:full_data_x})sess.run(init_op、feed_dict = {X-:full_data_x}) 訓練範囲でI(1、num_steps + 1):   _ 、D、IDX = sess.run([train_op、avg_distance、cluster_idx]、                         feed_dict = {X-:full_data_x})   IF%10 == I == 0 1又はI:       プリント(「ステップI%、平均距離:F% 「%(I、D))各ドットアロケーションテーブル#前



















最も近いサンプルに対する管理と#トレーニングラウンド各ラベル粒子タグ(「IDX」)の粒子の総数を計算するために
カウントし=のnp.zeros(形状=(K、num_classes))
レンジ(LEN(IDX)におけるIのための):
  カウント[IDX [I] + = mnist.train.labels [I]
最高周波数粒子に割り当てられた#タグ
[Cのカウントにnp.argmax(C)] labels_map =
labels_map = tf.convert_to_tensor(labels_map)評価#1 #centroid_id - >ラベルcluster_label = tf.nn.embedding_lookup(labels_map、cluster_idx) 計算精度correct_prediction = tf.equal(cluster_label、tf.cast(tf.argmax(Y ,. 1)、tf.int32))accuracy_op tf.reduce_mean =(tf.cast(correct_prediction、tf.float32)) テストモデルtest_x、test_y = mnist.test.images、mnist.test.labels










プリント( "試験精度:"、sess.run(accuracy_op、feed_dict = {X:test_x、Y:test_y}))
 

結果:

ステップ1、平均距離:0.341471
ステップ10、平均距離:0.221609
ステップ20、平均距離:0.220328
ステップ30、平均距離:0.219776
ステップ40、平均距離:0.219419
ステップ50、平均距離:0.219154
試験精度:0.7127
---- -----------------

おすすめ

転載: www.cnblogs.com/hyhy904/p/11182996.html