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

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

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

Q&A

0回答

2360閲覧

TensorFlowの学習後の実行について

ken0819

総合スコア10

0グッド

1クリップ

投稿2016/08/19 07:17

編集2016/08/19 08:59

###前提・実現したいこと
TensorFlowサンプルプログラムで
学習後にテストデータをためしに投入する記述方法がわかりませんでした。
インプットデータは下のように準備した。
ans,v1,v2,v3,v4
4,1,1,1,1
8,2,2,2,2
9,2,2,2,3
9,3,3,3,0
6,3,0,3,0
4,3,0,1,0
2,1,0,1,0
3,1,0,1,1

###発生している問題・エラーメッセージ

どのように記載するかわからない。

###該当のソースコード

lang

1# -*- coding: utf-8 -*- 2 3import random 4import numpy as np 5import pandas as pd 6import tensorflow as tf 7from sklearn.cross_validation import train_test_split 8from sklearn.feature_extraction import DictVectorizer 9from sklearn import preprocessing 10 11# Parameters 12learning_rate = 0.01 # 学習率 高いとcostの収束が早まる 13training_epochs = 10 # 学習全体をこのエポック数で区切り、区切りごとにcostを表示する 14batch_size = 3 # 学習1回ごと( sess.run()ごと )に訓練データをいくつ利用するか 15display_step = 1 # 1なら毎エポックごとにcostを表示 16train_size = 15 # 全データの中でいくつ訓練データに回すか 17step_size = 20 # 何ステップ学習するか 18 19# Network Parameters 20n_hidden_1 = 64 # 隠れ層1のユニットの数 21n_hidden_2 = 64 # 隠れ層2のユニットの数 22n_input = 4 # 与える変数の数 23n_classes = 1 # 分類するクラスの数 今回は生き残ったか否かなので2 24 25df = pd.read_csv('./input.csv') 26 27 28 29 30#labelEncoder = preprocessing.LabelEncoder() 31#df['Sex'] = labelEncoder.fit_transform(df['Sex']) 32#df['Cabin'] = labelEncoder.fit_transform(df['Cabin']) 33#df['Embarked'] = labelEncoder.fit_transform(df['Embarked']) 34 35# PassengerId,Survived,Pclass,Sex,Age,SibSp,Parch,Fare,Cabin,Embarked 36x_np = np.array(df[['v1', 'v2', 'v3', 'v4']].fillna(0)) 37 38 39 40y_np = np.array(df[['ans']].fillna(0)) 41 42[x_train, x_test] = np.vsplit(x_np, [train_size]) # 入力データを訓練データとテストデータに分ける 43[y_train, y_test] = np.vsplit(y_np, [train_size]) # ラベルを訓練データをテストデータに分ける 44 45#print(y_train) 46#print(y_test) 47 48 49# tf Graph input 50x = tf.placeholder("float", [None, n_input]) 51y = tf.placeholder("float", [None, n_classes]) 52# Create model 53def multilayer_perceptron(x, weights, biases): 54 # Hidden layer with RELU activation 55 layer_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1']) 56 layer_1 = tf.nn.relu(layer_1) 57 # Hidden layer with RELU activation 58 layer_2 = tf.add(tf.matmul(layer_1, weights['h2']), biases['b2']) 59 layer_2 = tf.nn.relu(layer_2) 60 # Output layer with linear activation 61 out_layer = tf.matmul(layer_2, weights['out']) + biases['out'] 62 return out_layer 63 64# Store layers weight & bias 65weights = { 66 'h1': tf.Variable(tf.random_normal([n_input, n_hidden_1])), 67 'h2': tf.Variable(tf.random_normal([n_hidden_1, n_hidden_2])), 68 'out': tf.Variable(tf.random_normal([n_hidden_2, n_classes])) 69} 70biases = { 71 'b1': tf.Variable(tf.random_normal([n_hidden_1])), 72 'b2': tf.Variable(tf.random_normal([n_hidden_2])), 73 'out': tf.Variable(tf.random_normal([n_classes])) 74} 75 76# Construct model 77pred = multilayer_perceptron(x, weights, biases) 78 79# Define loss and optimizer 80cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, y)) 81optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost) 82 83# Initializing the variables 84init = tf.initialize_all_variables() 85 86# Launch the graph 87with tf.Session() as sess: 88 sess.run(init) 89 90 # Training cycle 91 for epoch in range(training_epochs): 92 avg_cost = 0. 93 94 # Loop over step_size 95 for i in range(step_size): 96 # 訓練データから batch_size で指定した数をランダムに取得 97 ind = np.random.choice(batch_size, batch_size) 98 x_train_batch = x_train[ind] 99 y_train_batch = y_train[ind] 100 101 #print(x_train_batch) 102 #print(y_train_batch) 103 # Run optimization op (backprop) and cost op (to get loss value) 104 _, c = sess.run([optimizer, cost], feed_dict={x: x_train_batch, 105 y: y_train_batch}) 106 # Compute average loss 107 avg_cost += c / step_size 108 # Display logs per epoch step 109 if epoch % display_step == 0: 110 print "Epoch:", '%04d' % (epoch+1), "cost=", \ 111 "{:.9f}".format(avg_cost) 112 print "Optimization Finished!" 113 114 # Test model 115 correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1)) 116 # Calculate accuracy 117 accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) 118 print "Accuracy:", accuracy.eval({x: x_test, y: y_test})

###試したこと
以下を色々修正しましたが、よくわらない状態でした。
c = sess.run(xx, feed_dict={x: x_xxx,y: y_xxx})

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

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

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

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

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

NarugaL_ove

2016/08/19 07:42

ソースコードが読みにくいのでteratailの表記法に従い、コードの部分を```で囲ってください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問