2017-11-29 9 views
2

私は自分の回帰コードの最後のブロックに次のコードを実行しています:バッチインプット

steps = 50000 

with tf.Session() as sess: 

    sess.run(init) 

    for i in range(steps): 

     sess.run(train, feed_dict={X_data:X_train,y_target:y_train}) 



     if i%500 == 0: 

      rand_ind = np.random.random_integers(len(X_test)+1) 

      feed = {X_data:X_test.iloc[rand_ind:rand_ind+8,:],y_target:y_test.iloc[rand_ind:rand_ind+8,:]} 

      loss = tf.reduce_sum(tf.square(y_target-y_output))/8 
      print(sess.run(loss,feed_dict=feed)) 

これはパンダのデータフレームから小さなバッチを生成するための良い方法ですかがより良い方法ですそうするために?

ここではilocを使用していますが、以前は適切にインデックスを作成できませんでした。あなたは、次のコードを使用することができますデータフレームからランダムに行を選択したい場合は

DeprecationWarning: This function is deprecated. Please call randint(1, 6193 + 1) instead from ipykernel import kernelapp as app 
+0

それらを使用するサンプリングし、その後、行あなたのサンプルをドロップしないように、このコードを使用することができます.random.randint(len(X_test)+1) ' – Dark

+0

ありがとう、それはすでに助けてくれました。これはデータフレームからバッチを選択する良い方法ですか、それとももっと良いものを参照できますか? – Schnurrberto

答えて

1

:しかし、私は次のエラーを取得しています

import numpy as np 
batch = df.iloc[np.random.choice(df.index.values, sample_size)] 

このコードは、ランダムな行のインデックスを選択し、その後、選択されますバッチのためのそれら。 sample_sizeをバッチのサイズに置き換えます。

複数回使用する場合は、データを返すランダムサンプルを作成します。

あなたが再同じexmplesを使用する習慣がない場合は、エラーが `rand_ind = NPを使用言うように、再び

import numpy as np 
sample = np.random.choice(df.index.values, sample_size) 
batch = df.iloc[sample] 
newdf = df.drop(sample, axis = 0)