基于TensorFlow训练自定义图像数据集时遇版本兼容错误求助
解决TensorFlow训练自定义数据集时的两个常见提示/警告
Hey there! Let's break down the two issues you're encountering while training your custom image dataset with TensorFlow (latest CPU version) on Python 3.6:
1. 关于Instructions for updating: Please switch to tf.train.create_global_step的更新提示
这个提示是TensorFlow在提醒你使用了即将被废弃的旧API来创建全局步长(global step)。以前不少代码会用tf.contrib.framework.get_or_create_global_step()这类方法,但TensorFlow官方已经把这个API标记为过时,推荐使用tf.train.create_global_step()来替代。
修复方法:
找到你代码中创建全局步长的代码行,比如原来的:
global_step = tf.contrib.framework.get_or_create_global_step()
替换为:
global_step = tf.train.create_global_step()
这只是个警告,不会中断你的训练,但更新代码后能避免未来版本的兼容性问题,也更贴合TensorFlow的最新规范。
2. 关于INFO:tensorflow:Scale of 0 disables regularizer.的日志信息
这条日志是在告诉你:你设置的正则化器缩放系数(scale)为0,导致正则化功能被禁用了。
原因和解决方式:
- 如果这是故意的:你本来就不想在模型中使用正则化,那这条日志完全可以忽略,它只是一个告知性的信息,不会影响训练流程。
- 如果这是误操作:检查你构建模型时的正则化相关代码,比如是否在
tf.layers.dense、tf.contrib.layers.l2_regularizer这类函数中把正则化系数设成了0。举个例子,如果你有这样的代码:
dense_layer = tf.layers.dense( inputs=inputs, units=64, kernel_regularizer=tf.contrib.layers.l2_regularizer(0) )
把其中的0改成你需要的正则化系数(比如0.001),这样正则化器就会正常生效,这条日志也会消失。
内容的提问来源于stack exchange,提问作者D.Anush
相关产品推荐
相关产品推荐

