Tensorflow 2中的tf.contrib.layers.fully_connected()吗?

时间:2019-10-13 01:25:17

标签: python python-3.x tensorflow tensorflow2.0

我试图在我的一个项目中使用tf.contrib.layers.fully_connected(),但在tensorflow 2.0中已弃用。是否有等效的功能,还是我应该为此项目在虚拟环境中保留tensorflow v1.x?

4 个答案:

答案 0 :(得分:4)

tf-slim作为独立软件包,已经包含tf.contrib.layers。您可以通过pip install tf-slim进行安装,以from tf_slim.layers import layers as _layers; _layers.fully_conntected(..)进行调用。与原始软件包相同,易于更换

答案 1 :(得分:2)

在TensorFlow 2.0中,软件包tf.contrib已被删除(这是一个不错的选择,因为整个软件包是由放在同一盒子中的不同项目组成的巨大混合体),因此您不能使用它。

TensorFlow 2.0的方法是使用tf.keras.layer.Dense创建一个完全连接的层,但是更重要的是,您必须将代码库迁移到Keras。实际上,如果不创建使用该图层的tf.keras.Model对象,就无法定义和使用该图层。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

使用: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)