使用tf.contrib.learn.Experiment需要tf.train.replica_device_setter吗?

托比亚斯

我内置采用分布式tensorflow程序tf.estimator.Estimatortf.contrib.learn.Experimenttf.contrib.learn.learn_runner.run

目前看来,它工作正常。但是,tensorflow分布式教程用于tf.train.replica_device_setter将操作固定到作业。

我的模型函数不使用任何with device注释。这是由Experiment班级自动完成的吗?还是我错过了重点?

我还不确定,为什么我在使用数据并行时需要分配某些设备?

感谢您的帮助和提示,Tobias

马蒂亚斯·阿罗(Mattias Arro)

变量和操作定义在中tf.estimator.Estimator,该变量实际使用replica_device_setter在此定义)。如您所见,它为ps作业分配变量,为作业分配操作worker,这是处理数据并行性的常用方法。

replica_device_setter返回为设备分配操作和变量的设备函数。即使您使用数据并行性,也可能有许多参数服务器,并且设备函数将确保每个参数服务器都获得单独的变量(由ps_strategy决定replica_device_setter)。例如/job:ps/tasks:0可以得到W1b1,并且/job:ps/tasks:1可以得到W2b2设备函数在将变量分配给参数服务器时必须具有确定性,因为每次实例化工作副本时都会调用该函数,并且工作人员需要就ps哪个变量拥有哪个变量达成共识

tf。(contrib。)学习库使用图间复制这意味着每个工作程序副本都将构建一个单独的图,并将非变量操作分配给该工作程序:任务索引为2的工作程序将操作定义为/job:worker/task:2,将变量定义/job:ps(具体ps由决定ps_strategy)。这意味着工作副本将自己计算操作(损耗值和梯度),并将结果变量更新(梯度)发送到负责保存特定变量的特定参数服务器。

如果您没有将变量/操作分配给设备的机制,则不清楚哪个副本应包含哪些变量和操作。如果您在一个工作副本上有多个GPU,也可能需要分配给特定设备:即使您的变量存储在参数服务器上,您也需要为每个GPU创建一次图形密集型部分(显式将创建的操作分配给相关的GPU)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用tf.contrib.learn.Experiment中的train_and_evaluate函数正确应用辍学

“ tf.train.replica_device_setter”如何工作?

Tensorflow服务-使用tf.contrib.learn.Experiment训练的模型的“无可服务版本”消息

使用tf.contrib.learn解决基本的物流分类器

将tf.contrib.learn输入馈入DNNClassifier

如何为 tf.contrib.learn.DNNRegressor 选择参数

使用 tf.contrib.learn.LinearClassifier 后如何保存和加载张量流模型?

tensorflow tf.contrib.learn.SVM 如何重新加载训练好的模型并使用预测对新数据进行分类

使用“tf.contrib.factorization.KMeansClustering”

远离tf.contrib.learn:具有专用评估程序的分布式培训

tf.contrib.learn.io.numpy_input_fn 参数是什么意思?

tf.contrib.learn load_csv_with_header在TensorFlow 1.1中不起作用

线性回归,Tensorflow,非线性方程,tf.contrib.learn

tf.contrib.learn.RunConfig(save_checkpoints_secs = 1))引发意外的关键字TypeError

什么时候应该使用tf.train.BytesList,tf.train.FloatList和tf.train.Int64List将数据存储在tf.train.Feature中?

Tensorflow 2中的tf.contrib.layers.fully_connected()吗?

在验证数据上使用tf.train.Supervisor的默认summary_op吗?

无法在tensorflow会话中保存tf.contrib.learn宽模型和深模型并在TensorFlow Serving上提供

tf.contrib.learn.LinearRegressor为具有一个功能的数据构建意外不良模型

如何在MNIST上使用tf.contrib.model_pruning?

如何使用tf.contrib.keras.optimizers.Adamax?

预取(tf.data)和prefetch_to_device(tf.contrib)之间的区别

使用tf.contrib.data.parallel_interleave并行化tf.from_generator

为什么tf.train.GradientOptimizer不能在我的数字识别模型上工作,而tensorflow.contrib的ShampooOptimizer却能正常工作?

使用tf.train.batch时形状错误

如何在 SessionRunHook 中使用 tf.train.Saver?

如何使用tf.train.MonitoredTrainingSession仅还原某些变量

使用tf.train.MonitoredTrainingSession时如何获取全局步

如何使用 tf.train 训练使用 tf.Keras 模型创建的模型?