2017-11-29 4 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)) 

는 이것을 팬더 DataFrame에서 작은 배치를 생성하거나이 더 나은 방법입니다 수있는 좋은 방법입니다 그렇게하려면?

이전에 제대로 색인을 생성 할 수 없었기 때문에 여기에서 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

감사합니다. 이미 도움이되었습니다. 이것은 Dataframe에서 배치를 선택하는 좋은 방법입니까 아니면 더 나은 것을 참조 할 수 있습니까? – Schnurrberto

답변

1

당신은 다음과 같은 코드를 사용할 수있는 dataframe에서 임의의 행을 선택합니다 :

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)