tenssorflow tf.trin.batchのデータのロット読み方
2473 ワード
大量のデータトレーニング神経ネットワークを行う場合、大量にデータを読み込む必要があります。そこで、この文章のコードを参考にしたところ、データは常に大量に循環して出力されており、データの末尾で自動的に停止しないことがわかった。
そしてこのブログを見つけてslice_と言います。input_producer()この関数は形参num uがあります。epochsは、その値を設定することで、全データの循環出力を数回制御することができます。
設定後に以下のエラーが発生しました。
そこで私が呼び出した後、すべては正常になりました。ここでメモします。他の人が会った時、直ちに原因を見つけてほしいです。
ハハ、これは初めてソースを読んで問題を解決しました。気持ちはやはり少し興奮しています。あ、逸れました。最後に成功したコードです。
そしてこのブログを見つけてslice_と言います。input_producer()この関数は形参num uがあります。epochsは、その値を設定することで、全データの循環出力を数回制御することができます。
設定後に以下のエラーが発生しました。
tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value input_producer/input_producer/limit_epochs/epochs
[[Node: input_producer/input_producer/limit_epochs/CountUpTo = CountUpTo[T=DT_INT64, _class=["loc:@input_producer/input_producer/limit_epochs/epochs"], limit=2, _device="/job:localhost/replica:0/task:0/cpu:0"](input_producer/input_producer/limit_epochs/epochs)]]
長い間探しましたが、なぜ間違えたのか分かりませんでした。そこで、sliceを見に行きました。input_プロデューサー関数のソースコードは、ソースコードの中で発見された著者は、このnum_と述べた。epochsが空でなければ、ローカル変数です。まずglobal_を呼び出す必要があります。variables_initializer()関数初期化。そこで私が呼び出した後、すべては正常になりました。ここでメモします。他の人が会った時、直ちに原因を見つけてほしいです。
ハハ、これは初めてソースを読んで問題を解決しました。気持ちはやはり少し興奮しています。あ、逸れました。最後に成功したコードです。
import pandas as pd
import numpy as np
import tensorflow as tf
def generate_data():
num = 25
label = np.asarray(range(0, num))
images = np.random.random([num, 5])
print('label size :{}, image size {}'.format(label.shape, images.shape))
return images,label
def get_batch_data():
label, images = generate_data()
input_queue = tf.train.slice_input_producer([images, label], shuffle=False,num_epochs=2)
image_batch, label_batch = tf.train.batch(input_queue, batch_size=5, num_threads=1, capacity=64,allow_smaller_final_batch=False)
return image_batch,label_batch
images,label = get_batch_data()
sess = tf.Session()
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())#
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess,coord)
try:
while not coord.should_stop():
i,l = sess.run([images,label])
print(i)
print(l)
except tf.errors.OutOfRangeError:
print('Done training')
finally:
coord.request_stop()
coord.join(threads)
sess.close()
以上のtenssorflow tf.trin.batchのデータの量的な読み取り方法は、小編集が皆さんに共有している内容の全てです。参考にしていただきたいです。どうぞよろしくお願いします。