質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%

Q&A

0回答

1171閲覧

Teonsorflow 結果が全て同じ

退会済みユーザー

退会済みユーザー

総合スコア0

0グッド

2クリップ

投稿2019/07/15 03:25

学習結果が全て同じになるということはあるのでしょうか。(回帰)
どのように計算したとしても入力値が違えば、出力は違うのではないのでしょうか。
また、学習用データでも同じ現状が発生します。
どなたかわかる方、教えて頂けると幸いです。
Tensorflow 機械学習クックブックの第六章六節をそのまま使用しています。
参照URL

python

1# reset the graph for new run 2ops.reset_default_graph() 3 4# Create graph session 5sess = tf.Session() 6 7# set batch size for training 8batch_size = 100 9 10# make results reproducible 11seed = 3 12np.random.seed(seed) 13tf.set_random_seed(seed) 14 15from sklearn.model_selection import train_test_split 16from sklearn.preprocessing import StandardScaler 17 18#x_vals_train, x_vals_test, y_vals_train, y_vals_test = train_test_split(df.as_matrix(), df_Score.as_matrix(), test_size=0.2, random_state=0) 19 20x_vals_train = df.as_matrix() 21y_vals_train = df_Score.as_matrix() 22 23# Record training column max and min for scaling of non-training data 24train_max = np.max(x_vals_train, axis=0) 25train_min = np.min(x_vals_train, axis=0) 26 27# Normalize by column (min-max norm to be between 0 and 1) 28def normalize_cols(mat, max_vals, min_vals): 29 return (mat - min_vals) / (max_vals - min_vals) 30 31x_vals_train = np.nan_to_num(normalize_cols(x_vals_train, train_max, train_min)) 32#x_vals_test = np.nan_to_num(normalize_cols(x_vals_test, train_max, train_min)) 33 34print(x_vals_train.shape) 35print(y_vals_train.shape) 36 37# Define Variable Functions (weights and bias) 38def init_weight(shape, st_dev): 39 weight = tf.Variable(tf.random_normal(shape, stddev=st_dev)) 40 return(weight) 41 42def init_bias(shape, st_dev): 43 bias = tf.Variable(tf.random_normal(shape, stddev=st_dev)) 44 return(bias) 45 46# Create Placeholders 47x_data = tf.placeholder(shape=[None, 3806], dtype=tf.float32) 48y_target = tf.placeholder(shape=[None, 1], dtype=tf.float32) 49 50# Create a fully connected layer: 51def fully_connected(input_layer, weights, biases): 52 layer = tf.add(tf.matmul(input_layer, weights), biases) 53 return(tf.nn.relu(layer)) 54 55def final_connected(input_layer, weights, biases): 56 layer = tf.add(tf.matmul(input_layer, weights), biases) 57 return layer 58 59#--------Create the first layer (50 hidden nodes)-------- 60weight_1 = init_weight(shape=[3806, 10], st_dev=10.0) 61bias_1 = init_bias(shape=[10], st_dev=10.0) 62layer_1 = fully_connected(x_data, weight_1, bias_1) 63 64#--------Create second layer (25 hidden nodes)-------- 65weight_2 = init_weight(shape=[10, 5], st_dev=10.0) 66bias_2 = init_bias(shape=[5], st_dev=10.0) 67layer_2 = fully_connected(layer_1, weight_2, bias_2) 68 69#--------Create third layer (5 hidden nodes)-------- 70weight_3 = init_weight(shape=[5, 3], st_dev=10.0) 71bias_3 = init_bias(shape=[3], st_dev=10.0) 72layer_3 = fully_connected(layer_2, weight_3, bias_3) 73 74#--------Create output layer (1 output value)-------- 75weight_4 = init_weight(shape=[3, 1], st_dev=10.0) 76bias_4 = init_bias(shape=[1], st_dev=10.0) 77final_output = final_connected(layer_3, weight_4, bias_4) 78 79# Declare loss function (L1) 80loss = tf.reduce_mean(tf.abs(y_target - final_output)) 81 82# Declare optimizer 83my_opt = tf.train.AdamOptimizer(0.025) 84train_step = my_opt.minimize(loss) 85 86# Initialize Variables 87init = tf.global_variables_initializer() 88sess.run(init) 89 90# Training loop 91loss_vec = [] 92test_loss = [] 93for i in range(80000): 94 rand_index = np.random.choice(len(x_vals_train), size=batch_size) 95 rand_x = x_vals_train[rand_index] 96 rand_y = np.transpose([y_vals_train[rand_index]]) 97 sess.run(train_step, feed_dict={x_data: rand_x, y_target: rand_y}) 98 99 temp_loss = sess.run(loss, feed_dict={x_data: rand_x, y_target: rand_y}) 100 loss_vec.append(temp_loss) 101 102 #test_temp_loss = sess.run(loss, feed_dict={x_data: x_vals_test, y_target: np.transpose([y_vals_test])}) 103 #test_loss.append(test_temp_loss) 104 105 if (i+1) % 20000 == 0: 106 print('Generation: ' + str(i+1) + '. Loss = ' + str(temp_loss)) 107 #print('Generation: ' + str(i+1) + '. Loss = ' + str(temp_loss) + '. TEST_LOSS ' + str(test_temp_loss)) 108 109x_vals_test = dftest.as_matrix() 110# Normalize by column (min-max norm to be between 0 and 1) 111x_vals_test = np.nan_to_num(normalize_cols(x_vals_test, train_max, train_min)) 112 113YY = sess.run(final_output, feed_dict={x_data: x_vals_train}) 114# YYが常に同じ数になる

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問