在TensorFlow中,tf.layers
和tf.contrib.layers
共享许多功能(标准2D卷积层,批量规范化层等)。这两者之间的区别仅在于contrib.layers
包仍然是实验性的layers
包被认为是稳定的吗?或者一个被另一个取代?其他差异?为什么这两个分开?
答案 0 :(得分:15)
你已经回答了自己的问题。 tf.contrib
命名空间的官方文档说明是:
contrib模块包含易失性或实验性代码。
因此tf.contrib
保留用于实验性功能。允许此命名空间中的API在不同版本之间快速更改,而其他API通常不能没有新的主要版本。特别是,tf.contrib.layers
中的函数与tf.layers
中的函数不同,尽管其中一些函数可能会使用不同的名称进行复制。
至于你是否应该使用它们,这取决于你是否愿意处理突然发生的变化。不依赖tf.contrib
的代码可能更容易迁移到TensorFlow的未来版本。