我正在尝试在自定义数据上训练DeepLab模型。我正在使用官方Github repo-link上提供的TensorFlow代码。我可以使用单个GPU训练该模型,但是当我在8个GPU(使用--num_replicas=8 and --num_ps_tasks=4
)上训练该模型时,会在多个操作上引发以下错误。
InvalidArgumentError(请参阅上面的回溯):无法为操作“ logits / semantic / biases / Momentum”分配设备:操作已明确分配给/ job:ps / task:2 / device:CPU:0,但可用设备是[/ job:localhost /副本:0 /任务:0 /设备:CPU:0,/ job:localhost /副本:0 /任务:0 /设备:GPU:0,/ job:localhost /副本:0 /任务: 0 /设备:GPU:1,/作业:本地主机/副本:0 /任务:0 /设备:GPU:2,/作业:本地主机/副本:0 /任务:0 /设备:GPU:3,/作业:本地主机/副本:0 /任务:0 /设备:GPU:4,/作业:本地主机/副本:0 /任务:0 /设备:GPU:5,/作业:本地主机/副本:0 /任务:0 /设备:GPU :6,/ job:localhost /副本:0 /任务:0 /设备:GPU:7]。确保设备规格引用的是有效设备。 [[节点:logits /语义/偏见/动量= VariableV2_class = [“ loc:@ logits / semantic / biases”],container =“”,dtype = DT_FLOAT,shape = [3],shared_name =“”,_ device =“ / job:ps / task:2 / device:CPU:0“]]
我们可以看到,分配的设备名称与实际名称不同。培训脚本中没有任何可更改设备名称或显式分配设备的代码段。我认为苗条在后端做到这一点。无论如何,我无法弄清楚这里出了什么问题。任何建议将不胜感激。