Tensorflow:tf.contrib.slim和tf.layers之间的区别

时间:2018-06-28 11:40:35

标签: tensorflow

何时应使用tf.contrib.slim以及何时应使用tf.layers?

1 个答案:

答案 0 :(得分:2)

根据https://www.tensorflow.org/api_docs/python/tf/contrib中的定义,contrib模块包含“易失性代码或实验代码”。

通常来说,模块SELECT qm1.date, qm1.invoiceno, CASE WHEN qi2.quoteid IS NULL THEN cm1.currencycode ELSE '0' END currencycode, CASE WHEN qi2.quoteid IS NULL THEN qi2.amount ELSE 0 END amount FROM quotationmaster qm1 LEFT JOIN (SELECT qi1.quoteid, sum(qi1.amount) amount, max(qi1.currencyid) currencyid FROM quoteitems qi1 GROUP BY qi1.quoteid HAVING max(qi1.currencyid) = min(qi1.currencyid)) qi2 ON qi2.quoteid = qm1.quoteid LEFT JOIN currencymaster cm1 ON cm1.currencyid = cm1.qurrencyid; 包含贡献的代码。该代码通常需要进行一些其他测试,并且在最终集成到TensorFlow内核之前可能会遇到一些重大更改。特别是,此代码不受Tensorflow团队的支持,并且可能随时在没有保证的情况下进行修改或完全删除。

由于这个原因,总的来说我更喜欢使用tf.contrib,因为它在代码支持方面更加稳定,但是显然tf.layers中的某些实现有时还是有用的(例如,当有新的实现时)层,优化器等。您不能或不想自己编写它们,有时这些库会快速更新)。