1
私はカフェからテンソルフローに切り替えるだけです。私はバッチ処理をしていないテンソルフローの最初の例を持っています。私はミニバッチを使用するつもりですが、私は立ち往生しています。バッチ、キュー、座標が必要です。私はそれらをどのように使用できるか正確には分かりません。テンソルフローのバッチ処理の問題
あなたが今
import tensorflow as tf
import numpy as np
import scipy.io as sio
import h5py
sess = tf.InteractiveSession()
train_mat = h5py.File('Basket_train_data_binary.mat')
test_mat = h5py.File('Basket_test_data_binary.mat')
train_mat = train_mat["binary_train"].value
test_mat = test_mat["binary_test"].value
Train = np.transpose(train_mat)
Test = np.transpose(test_mat)
# import the data
# placeholders, which are the training data
x = tf.placeholder(tf.float32, shape=[None, 42])
y_ = tf.placeholder(tf.float32, shape=[None])
nnodes = 10
# define the variables
W1 = tf.Variable(tf.zeros([43,nnodes]))
b1 = tf.Variable(tf.zeros([nnodes]))
W2 = tf.Variable(tf.zeros([nnodes,1]))
b2 = tf.Variable(tf.zeros([1]))
# initilize the variables
sess.run(tf.initialize_all_variables())
# placeholders, which are the training data
x = tf.placeholder(tf.float32, shape=[None, 43])
y_ = tf.placeholder(tf.float32, shape=[None])
nnodes = 10
# define the variables
W1 = tf.Variable(tf.zeros([43,nnodes]))
b1 = tf.Variable(tf.zeros([nnodes]))
W2 = tf.Variable(tf.zeros([nnodes,1]))
b2 = tf.Variable(tf.zeros([1]))
# Passing global_step to minimize() will increment it at each step.
global_step = tf.Variable(0, trainable=False)
# initilize the variables
sess.run(tf.initialize_all_variables())
# prediction function (just one layer)
layer1 = tf.nn.sigmoid(tf.matmul(x,W1) + b1)
y = tf.matmul(layer1,W2) + b2
# cost function
cost_function = tf.reduce_sum(tf.square(y_ - y))
alpha = 2
l2regularization = tf.reduce_sum(tf.square(W1)) + tf.reduce_sum(tf.square(b1)) +tf.reduce_sum(tf.square(W2)) + tf.reduce_sum(tf.square(b2))
loss = cost_function + alpha*l2regularization
# define the learning_rate and its decaying procedure.
decay_rate = 0.00005
starter_learning_rate = 0.0000009
learning_rate = tf.train.exponential_decay(starter_learning_rate, global_step,10000, decay_rate, staircase=True)
# define the training paramters and model, gradient model and feeding the function
train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss, global_step=global_step)
# Train the Model for 1000 times. by defining the batch number we determine that it is sgd
bth_sz = 100
for i in range(2):
train_step.run(feed_dict={x:Train[1:100,0:43] , y_:Train[1:100,43]})
print "y"
sess.run([tf.Print(y,[y])],feed_dict={x:Train[0:100,0:43] , y_:Train[1:100,43]})
print "y_"
sess.run([tf.Print(y_,[y_])],feed_dict={x:Train[0:100,0:43] , y_:Train[1:100,43]})
print "W1"
sess.run([tf.Print(W1,[W1])],feed_dict={x:Train[0:100,0:43] , y_:Train[1:100,43]})
print "W2"
sess.run([tf.Print(W2,[W2])],feed_dict={x:Train[0:100,0:43] , y_:Train[1:100,43]})
print "b1"
sess.run([tf.Print(b1,[b1])],feed_dict={x:Train[0:100,0:43] , y_:Train[1:100,43]})
# evaluation
# it returns 1, if both y and y_ are equal.
correct_prediction = tf.reduce_sum(tf.square(y_ - y))
# calculate the accuracy
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
# print tset loss
print(accuracy.eval(feed_dict={x: Test[:,0:43], y_: Test[:,43]}))
# print training loss
print sess.run(cost_function,feed_dict={x: Train[:,0:43], y_: Train[:,43]})
、私はバッチ処理を使用することができますどのように私のコードで私を説明することができれば、私は感謝し、私は最初の100件のレコードを選択するx:Train[1:100,0:43]
を使用しています。私は自分でミニバッチ選択を書いたくない。事前に
おかげで、 アフシン・
私はこのエラーを得ました。受け入れ可能なフィード値には、Pythonのスカラー、文字列、リスト、またはnumpyのndarraysが含まれます。 '私は、デキューするためにsess.runも必要であると思います。そうではありませんか? –
コードのどの部分にエラーが発生していますか?私はコードを追加して、それは私のためにうまくいく、それを試してみてください。エラーが再び発生した場合はお知らせください。 –