Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
分布式执行开始后,如何将输入运算符添加到tensorflow图中?_Tensorflow - Fatal编程技术网

分布式执行开始后,如何将输入运算符添加到tensorflow图中?

分布式执行开始后,如何将输入运算符添加到tensorflow图中?,tensorflow,Tensorflow,我想使用分布式tensorflow以流式方式使用参数服务器对模型进行训练。worker设置类似于以下内容: def列_模型(文件名、参数): 带tf.装置(tf.train.replica\u装置\u setter( worker_device='/job:worker/task:%d'%params.task_index,cluster=cluster]: input\u op=构造\u输入\u op(文件名) 全局_步长=tf.变量(0) 列车运行=构造列车运行(输入运行、全局运行、参数)

我想使用分布式tensorflow以流式方式使用参数服务器对模型进行训练。worker设置类似于以下内容:

def列_模型(文件名、参数):
带tf.装置(tf.train.replica\u装置\u setter(
worker_device='/job:worker/task:%d'%params.task_index,cluster=cluster]:
input\u op=构造\u输入\u op(文件名)
全局_步长=tf.变量(0)
列车运行=构造列车运行(输入运行、全局运行、参数)
init_op=tf.global_variables_initializer()
saver=tf.train.saver(tf.global\u variables()+tf.local\u variables())
主管=tf.train.supervisor(
is_chief=params.task_index==0,
logdir=参数培训\总结\目录,
init_op=init_op,
储蓄者=储蓄者,
全局步=全局步,
保存模式(秒=0)
将supervisor.managed_会话(server.target)作为sess:

虽然不是supervisor.should_stop()和step您可以在图形对象上尝试。_unsafe_unfinalize(),但更可靠的解决方案是提前创建所有需要的操作(在同时运行图形时修改图形会导致性能/线程安全问题)

您可以尝试
。\u unsafe_unfinalize()
在图形对象上,尽管一个更健壮的解决方案是提前创建所需的所有操作(在运行图形时/同时修改图形会导致性能/线程安全问题)@YaroslavBulatov-您能回答这个问题吗?谢谢
def train_model(filenames, params):
    with tf.device(tf.train.replica_device_setter(
            worker_device='/job:worker/task:%d' % params.task_index, cluster=cluster)):
        input_op = construct_input_op(filenames)
        global_step = tf.Variable(0)
        train_op = construct_train_op(input_op, global_step, params)

    init_op = tf.global_variables_initializer()
    saver = tf.train.Saver(tf.global_variables() + tf.local_variables())

    supervisor = tf.train.Supervisor(
        is_chief=params.task_index == 0,
        logdir=params.training_summary_dir,
        init_op=init_op,
        saver=saver,
        global_step=global_step,
        save_model_secs=0)

    with supervisor.managed_session(server.target) as sess: 
        while not supervisor.should_stop() and step <= params.max_steps:
            sess.run(train_op)

    supervisor.stop()

cluster = tf.train.ClusterSpec({"ps": [params.param_server_host], "worker": params.worker_hosts})
server = tf.train.Server(cluster, job_name="worker", task_index=params.task_index)
while True:
   filenames = wait_for_new_training_data(...)
   train_model(filenames, params)