Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
Python 如何将perreplica转换为张量?_Python_Tensorflow_Tensorflow2.0 - Fatal编程技术网

Python 如何将perreplica转换为张量?

Python 如何将perreplica转换为张量?,python,tensorflow,tensorflow2.0,Python,Tensorflow,Tensorflow2.0,在tensorflow2.0中使用多gpu进行培训时,perreplica将减少以下代码: strategy.reduce(tf.distribute.ReduceOp.SUM,每个副本的损失,axis=None) 但是,如果我只想收集(没有“总和减少”或“平均减少”)所有gpu的预测到张量中: per_replica_loss,per_replica_predicitions=strategy.experimental_run_v2(训练步骤,args=(数据集输入,) #如何把每一个复型的

在tensorflow2.0中使用多gpu进行培训时,perreplica将减少以下代码:

strategy.reduce(tf.distribute.ReduceOp.SUM,每个副本的损失,axis=None)
但是,如果我只想收集(没有“总和减少”或“平均减少”)所有gpu的预测到张量中:

per_replica_loss,per_replica_predicitions=strategy.experimental_run_v2(训练步骤,args=(数据集输入,)
#如何把每一个复型的预测转换成张量?

简而言之,您可以将
PerReplica
结果转换为一组张量,如下所示:

tensors_tuple = per_replica_predicitions.values
per_replica_losses, per_replica_predicitions = strategy.experimental_run_v2(train_step, args=(dataset_inputs,))

if strategy.num_replicas_in_sync > 1:
    predicition_tensors = per_replica_predicitions.values
else:
    predicition_tensors = per_replica_predicitions
返回的
tensors\u元组
将是来自每个副本/设备的
预测
的元组:

(predicton_tensor_from_dev0, prediction_tensor_from_dev1,...)
此元组中的元素数由分布式策略可用的设备决定。特别是,如果策略在单个副本/设备上运行,则strategy.experimental_run_v2的返回值将与直接调用train_step函数相同(张量或张量列表由您的
train_step
决定)。因此,您可能希望这样编写代码:

tensors_tuple = per_replica_predicitions.values
per_replica_losses, per_replica_predicitions = strategy.experimental_run_v2(train_step, args=(dataset_inputs,))

if strategy.num_replicas_in_sync > 1:
    predicition_tensors = per_replica_predicitions.values
else:
    predicition_tensors = per_replica_predicitions
PerReplica
是包装分布式运行结果的类对象。您可以找到它的定义,有更多的属性/方法供我们操作
PerReplica
对象