弃用警告:如何删除tf.keras警告“不建议使用dtype调用VarianceScaling .__ init __...”

时间:2019-02-13 19:14:51

标签: python tensorflow keras

以下代码在tensorflow r1.12 python API中生成警告:

#!/usr/bin/python3
import tensorflow as tf

M = tf.keras.models.Sequential();
M.add(tf.keras.layers.Dense(2)); 

完整的警告文本是这样的:

WARNING: Logging before flag parsing goes to stderr.
W0213 15:50:07.239809 140701996246848 deprecation.py:506] From /home/matias/anaconda3/lib/python3.6/site-packages/tensorflow/python/ops/init_ops.py:1253: calling VarianceScaling.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.
Instructions for updating:
Call initializer instance with the dtype argument instead of passing it to the constructor

我尝试了不同的方法,例如在添加Dense层并将其传递给Dense构造函数之前初始化和调用内核初始化程序,但似乎并没有改变任何东西。这是不可避免的警告吗?对我来说,回答“是”就足够了。

3 个答案:

答案 0 :(得分:0)

您正在运行张量流2.0,它看起来像VarianceScaling。不建议使用 init 。这可能意味着将来需要对Sequential进行更明确的初始化。 例如:

model = tf.keras.Sequential([
# Adds a densely-connected layer with 64 units to the model:
layers.Dense(64, activation='relu', input_shape=(32,)),
# Add another:
layers.Dense(64, activation='relu'),
# Add a softmax layer with 10 output units:
layers.Dense(10, activation='softmax')])

答案 1 :(得分:0)

这只是基于changes in Tensorflow 2.0的警告。

如果您不想看到这些警告,请升级到TensorFlow 2.0。您可以通过pip安装测试版:

pip install tensorflow==2.0.0-beta1

答案 2 :(得分:0)

警告可能是由abseil-py(依赖tensorflow)引起的。 请参阅详细信息here。 一个简单的解决方法可能是通过运行以下命令来更新abseil-py

pip install --upgrade absl-py

(在我的情况下,冲突版本为0.7.1,问题已在更新版本0.8.1中得以解决)