TypeError:zeros_initializer()至少需要1个参数(给定0)

时间:2017-04-27 17:17:06

标签: python tensorflow

我正在尝试从Tensorflow运行初始示例: https://github.com/tensorflow/models/tree/master/inception

但是,我收到此错误:

  

TypeError:zeros_initializer()至少需要1个参数(0给定)

当我寻找解决方案时,主要有两个:
1.改变zeros_initializer& ones_initializerzeros_initializer()& ones_initializer(),但他们已经是这样了。

2.将Tensorflow升级到最新版本,我这样做了:
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.1.0-cp27-none-linux_x86_64.whl

然后我使用此命令升级文件:
tf_upgrade.py --infile foo.py --outfile foo-upgraded.py

以上都没有奏效。

注意:
我通过此命令检查了我的TF版本:
python -c 'import tensorflow as tf; print(tf.__version__)'
结果如下:

  

0.12.1

我也尝试从函数中取出括号,但后来它不起作用并给出了不同的错误

  

TypeError:ones_initializer()获得了关键字参数的多个值' dtype'

更新
1.这是有问题的代码 https://github.com/tensorflow/models/blob/master/inception/inception/slim/ops.py
2.这里的主题讨论了同样的问题(Error thrown in Google's Inception-v3 fine-tuning script),但我使用以下方法检查了我的瘦身版本:

python -c "import tensorflow.contrib.slim as slim; eval = slim.evaluation.evaluate_once"python -c "from nets import cifarnet; mynet = cifarnet.cifarnet"

无误运行

1 个答案:

答案 0 :(得分:0)

问题是代码使用initializer=tf.zeros_initializer()。但是,正如您所看到的,tf.zeros_initializer()具有您的示例未提供的必需属性shape

我认为在以前的版本中,这个参数不是必需的。您有两个选择:

  • 找到形状并正确传递
  • 将其更改为tf.constant_initializer(0.0)(尚未测试是否有效)