我正在尝试从Tensorflow运行初始示例: https://github.com/tensorflow/models/tree/master/inception
但是,我收到此错误:
TypeError:zeros_initializer()至少需要1个参数(0给定)
当我寻找解决方案时,主要有两个:
1.改变zeros_initializer
& ones_initializer
至zeros_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"
无误运行
答案 0 :(得分:0)
问题是代码使用initializer=tf.zeros_initializer()
。但是,正如您所看到的,tf.zeros_initializer()
具有您的示例未提供的必需属性shape
。
我认为在以前的版本中,这个参数不是必需的。您有两个选择:
tf.constant_initializer(0.0)
(尚未测试是否有效)