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