tf.contrib.layers.fully_connected() 在 Tensorflow 2 中?

tf.contrib.layers.fully_connected() in Tensorflow 2?

我正在尝试在我的一个项目中使用 tf.contrib.layers.fully_connected(),它在 tensorflow 2.0 中已被弃用。是否有等效的功能,或者我应该在这个项目的虚拟环境中保留 tensorflow v1.x?

在 TensorFlow 2.0 中,包 tf.contrib 已被删除(这是一个不错的选择,因为整个包是不同项目的巨大组合,所有项目都放在同一个盒子里),所以你不能使用它。

在TensorFlow 2.0中我们需要使用tf.keras.layers.Dense来创建一个全连接层,但更重要的是,你必须将你的代码库迁移到Keras。事实上,如果不创建使用它的 tf.keras.Model 对象,就无法定义并使用它。

tf-slim,作为独立包,已经包含tf.contrib.layers.you可以pip install tf-slim安装,from tf_slim.layers import layers as _layers; _layers.fully_conntected(..)调用。和原来的一样,方便替换

tf.contrib.layers.fully_connected() 是一团糟。这是一个非常古老的历史标记(或史前 DNN 遗产)。 Google 完全弃用了该功能,因为 Google 讨厌它。 TensoFlow 2.x 中没有任何直接函数来替换 tf.contrib.layers.fully_connected()。因此,不值得询问和了解功能。

使用:tf.compat.v1.layers.dense 例如,而不是

Z = tf.contrib.layers.fully_connected(F, num_outputs, activation_fn=None)

您可以将其替换为:

Z = tf.compat.v1.layers.dense(F, num_outputs, activation = None)