Tensorflow : TypeError: convolution2d() 得到一个意外的关键字参数 'kernel_initializer'



我正在尝试编写一个自动编码器在TensorFlow (v 1.14.0). 我想将kernel_initializer设置为Xavier初始化. 然而,当我在代码中调用tf.contrib.layers.conv2d()时:

Conv = layers.conv2d(
inputs=X, 
num_outputs=64, 
kernel_size=5, 
stride=[2,1],
activation_fn=tf.nn.relu, 
kernel_initializer=tf.contrib.layers.xavier_initializer()
)

我在参数kernel_initializer中得到以下错误:

File "/data/my_new_env37/lib/python3.7/sitepackages/tensorflow/contrib/framework/python/ops/arg_scope.py", line 182, in func_with_args
return func(*args, **current_args)
TypeError: convolution2d() got an unexpected keyword argument kernel_initializer

如果没有kernel_initializer参数,代码可以正常工作。这个错误意味着什么?如何解决这个问题?

首先,我不习惯Tensorflow v1.14.0,但是我从文档中看到的是kernel_initializer关键字不被apitf.contrib.layers.conv2d接受,这里是api文档的链接。

但是您仍然可以使用conv2d的其他API,即tf.layers.Conv2D,这里是相同的文档。这个API提供了提供kernel_initializer的选项。

因为我不习惯Tensorflow v1.14.0,所以我将无法提供这两个API之间的实际差异。但是我会给这个API一个尝试。

相关内容

  • 没有找到相关文章

最新更新