基于TensorFlow Wide&Deep教程构建二分类器时运行示例报错求助
解决TensorFlow Wide&Deep示例中
tensors_to_log路径错误的问题 我之前在运行Wide&Deep官方示例时也碰到过一模一样的问题!这主要是因为你使用的TensorFlow版本和教程编写时的版本不一致,导致模型内部的张量名称路径发生了变化,原来的路径找不到对应的张量了。下面给你两种解决方案:
方案一:直接替换为适配新版本的路径
针对TensorFlow 2.x版本的Wide&Deep实现,你可以把第199行的代码替换成以下内容:
tensors_to_log = { 'average_loss': 'head/average_loss', 'loss': 'head/total_loss' }
如果这个路径还是找不到,试试更简化的版本(部分场景下Keras封装的模型会用更直接的名称):
tensors_to_log = { 'average_loss': 'loss', 'loss': 'loss' }
方案二:自己查找当前模型的正确张量路径
如果上面的固定替换不生效,最稳妥的方法是自己找到当前模型里的loss相关张量名称:
- 在模型训练代码的开头添加以下代码,开启调试日志:
import tensorflow as tf tf.debugging.experimental.enable_dump_debug_info( './tf_debug_logs', tensor_debug_mode="FULL_HEARTBEAT", circular_buffer_size=-1 ) - 启动训练后,在终端运行TensorBoard命令:
tensorboard --logdir=./tf_debug_logs - 打开TensorBoard的Scalars标签页,找到训练过程中输出的loss相关指标,把对应的名称复制到
tensors_to_log字典里即可。
这样你就能精准匹配当前TensorFlow版本下的张量路径,解决报错问题啦!
内容的提问来源于stack exchange,提问作者Caterpillaraoz
相关产品推荐
相关产品推荐

