T 8

2019-02-01  本文已影响0人  sumpig

class tf.FIFOQueue

FIFOQueue(
    capacity,
    dtypes,
    shapes=None,
    names=None,
    shared_name=None,
    name='fifo_queue'
)

capacity: 整数,数列存储上限;

q = tf.FIFOQueue(2, "int32")
enqueue_many(
    vals,
    name=None
)

vals: 张量,列表,元祖或者字典,队列初始化的元素;

init = q.enqueue_many(([0, 10],))
dequeue(
    name=None
)

x = q.dequeue()

tf.train.Coordinator

__init__(clean_stop_exception_types=None)
coord = tf.train.Coordinator()
join(
    threads=None,
    stop_grace_period_secs=120,
    ignore_live_threads=False
)

threads: 列表 threading.Threads;
stop_grace_period_secs: request_stop()调用后线程停止的秒数;

request_stop(ex=None)
import tensorflow as tf 

coord = tf.train.Coordinator()

print(coord.should_stop())  #False
coord.request_stop()
print(coord.should_stop())  #True

tf.train.QueueRunner

__init__(
    queue=None,
    enqueue_ops=None,
    close_op=None,
    cancel_op=None,
    queue_closed_exception_types=None,
    queue_runner_def=None,
    import_scope=None
)

queue: 队列;
enqueue_ops: 稍后在线程中运行的队列操作列表;

queue = tf.FIFOQueue(100, "float")
enqueue_op = queue.enqueue([tf.random_normal([1])])

qr = tf.train.QueueRunner(queue, [enqueue_op] * 5)
create_threads(
    sess,
    coord=None,
    daemon=False,
    start=False
)

sess: 会话;
coord: 用于报告错误和检查停止条件的线程管理器;

add_queue_runner(
    qr,
    collection=tf.GraphKeys.QUEUE_RUNNERS
)

qr: QueueRunner;
collection: 指定要添加队列运行器的图表集合;

start_queue_runners(
    sess=None,
    coord=None,
    daemon=True,
    start=True,
    collection=tf.GraphKeys.QUEUE_RUNNERS
)

tf.train.match_filenames_once

match_filenames_once(
    pattern,
    name=None
)

pattern: 文件模式,或者包含文件模式的1D张量;

files = tf.train.match_filenames_once("path/data.tfrecords-*")

tf.train.string_input_producer

string_input_producer(
    string_tensor,
    num_epochs=None,
    shuffle=True,
    seed=None,
    capacity=32,
    shared_name=None,
    name=None,
    cancel_op=None
)
filename_queue = tf.train.string_input_producer(files, shuffle=False)

上一篇 下一篇

猜你喜欢

热点阅读