TensorBoardDebugWrapperSession遇RPC名称解析失败,是代码问题还是Bug?
先看一下你的环境版本:
- Python 2.7.16
- TensorBoard: 1.13.1
- TensorFlow: 1.13.1
你用来复现问题的代码如下:
import tensorflow as tf from tensorflow.python import debug as tf_debug graph = tf.Graph() with graph.as_default(): inp = tf.placeholder(tf.float32,shape=(1)) inp2 = tf.placeholder(tf.float32,shape=(1)) var = tf.math.multiply(inp,inp2) sess = tf.Session(graph=graph) with sess.as_default(): sess = tf_debug.TensorBoardDebugWrapperSession(sess,"grpc://localhost:6064") with tf.summary.FileWriter('/home/penalvad/stattus4/stattus4-audio-models/notebooks/',graph=graph,session=sess) as writer: tf.summary.initialize(graph=self.graph,session=sess) sess.run(var,feed_dict={inp:10.0,inp2:2.0})
遇到的报错信息:
_Rendezvous: <_Rendezvous of RPC that terminated with: status = StatusCode.UNAVAILABLE details = "Name resolution failure" debug_error_string = "{"created":"@1564495830.026710193","description":"Failed to create subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":2721,"referenced_errors":[{"created":"@1564495830.026708437","description":"Name resolution failure","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":3026,"grpc_status":14}]}"
结论
这不是TensorFlow的Bug,而是操作配置上的问题。报错里的"Name resolution failure"说明gRPC无法正确解析你指定的连接地址,结合你后续的更新说明来看:
- 之前大概率存在gRPC协议前缀错误(比如漏写
grpc://)或者端口不匹配的情况 - 同时需要确保TensorBoard Debug Server确实在
localhost:6064这个端口正常运行,端口未启动或不匹配也会触发连接失败
修正地址格式与端口后问题解决,也验证了这一点——只要调整好连接参数,确保Debug Server在对应端口运行,就能正常工作。
内容的提问来源于stack exchange,提问作者Syncaa

