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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

281閲覧

tensorflow NNの評価用データの出力がnan

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/07/13 11:14

編集2019/07/13 23:06

以下コードで実行したところ、評価用(x_vals_test, y_vals_test)が上手く働いてくれません。
x_vals_test, y_vals_testの損失がnanと出力されるのはなぜなのでしょうか。
分かる方がいれば教えて頂けると幸いです。

python

1from sklearn.model_selection import train_test_split 2from sklearn.preprocessing import StandardScaler 3 4x_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) 5 6# Record training column max and min for scaling of non-training data 7train_max = np.max(x_vals_train, axis=0) 8train_min = np.min(x_vals_train, axis=0) 9 10# Normalize by column (min-max norm to be between 0 and 1) 11def normalize_cols(mat, max_vals, min_vals): 12 return (mat - min_vals) / (max_vals - min_vals) 13 14x_vals_train = np.nan_to_num(normalize_cols(x_vals_train, train_max, train_min)) 15x_vals_test = np.nan_to_num(normalize_cols(x_vals_test, train_max, train_min)) 16 17# Define Variable Functions (weights and bias) 18def init_weight(shape, st_dev): 19 weight = tf.Variable(tf.random_normal(shape, stddev=st_dev)) 20 return(weight) 21 22def init_bias(shape, st_dev): 23 bias = tf.Variable(tf.random_normal(shape, stddev=st_dev)) 24 return(bias) 25 26# Create Placeholders 27x_data = tf.placeholder(shape=[None, 3806], dtype=tf.float32) 28y_target = tf.placeholder(shape=[None, 1], dtype=tf.float32) 29 30# Create a fully connected layer: 31def fully_connected(input_layer, weights, biases): 32 layer = tf.add(tf.matmul(input_layer, weights), biases) 33 return(tf.nn.relu(layer)) 34 35def final_connected(input_layer, weights, biases): 36 layer = tf.add(tf.matmul(input_layer, weights), biases) 37 return layer 38 39#--------Create the first layer (50 hidden nodes)-------- 40weight_1 = init_weight(shape=[3806, 10], st_dev=10.0) 41bias_1 = init_bias(shape=[10], st_dev=10.0) 42layer_1 = fully_connected(x_data, weight_1, bias_1) 43 44#--------Create second layer (25 hidden nodes)-------- 45weight_2 = init_weight(shape=[10, 5], st_dev=10.0) 46bias_2 = init_bias(shape=[5], st_dev=10.0) 47layer_2 = fully_connected(layer_1, weight_2, bias_2) 48 49#--------Create third layer (5 hidden nodes)-------- 50weight_3 = init_weight(shape=[5, 3], st_dev=10.0) 51bias_3 = init_bias(shape=[3], st_dev=10.0) 52layer_3 = fully_connected(layer_2, weight_3, bias_3) 53 54#--------Create output layer (1 output value)-------- 55weight_4 = init_weight(shape=[3, 1], st_dev=10.0) 56bias_4 = init_bias(shape=[1], st_dev=10.0) 57final_output = final_connected(layer_3, weight_4, bias_4) 58 59# Declare loss function (L1) 60loss = tf.reduce_mean(tf.abs(y_target - final_output)) 61 62# Declare optimizer 63my_opt = tf.train.AdamOptimizer(0.001) 64train_step = my_opt.minimize(loss) 65 66# Initialize Variables 67init = tf.global_variables_initializer() 68sess.run(init) 69 70# Training loop 71loss_vec = [] 72test_loss = [] 73for i in range(80000): 74 rand_index = np.random.choice(len(x_vals_train), size=batch_size) 75 rand_x = x_vals_train[rand_index] 76 rand_y = np.transpose([y_vals_train[rand_index]]) 77 sess.run(train_step, feed_dict={x_data: rand_x, y_target: rand_y}) 78 79 temp_loss = sess.run(loss, feed_dict={x_data: rand_x, y_target: rand_y}) 80 loss_vec.append(temp_loss) 81 82 test_temp_loss = sess.run(loss, feed_dict={x_data: x_vals_test, y_target: np.transpose([y_vals_test])}) 83 test_loss.append(test_temp_loss) 84 85 if (i+1) % 20000 == 0: 86 print('Generation: ' + str(i+1) + '. Loss = ' + str(temp_loss) + '. TEST_LOSS ' + str(test_temp_loss))
Generation: 20000. Loss = 0.6681944. TEST_LOSS nan Generation: 40000. Loss = 0.6850753. TEST_LOSS nan Generation: 60000. Loss = 0.71310586. TEST_LOSS nan Generation: 80000. Loss = 0.82346433. TEST_LOSS nan

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問