2017-09-20 30 views
0

最近我在看TensorFlow的介紹,並且在那期間,Keras成爲了高級API,可以在後端使用TensorFlow或Theano。爲什麼要在Keras上使用純TensorFlow?

我玩弄了他們兩個,並且用第一個純TensorFlow做了MNIST LeNet-5實現,然後用Keras做了。至少在我的機器上,當直接使用TensorFlow時,我無法看到任何顯着的性能提升。

所以我現在的問題是:在Keras上直接使用TensorFlow有什麼好處?也許這是一個規模問題,我會在大型項目中看到性能的顯着提升嗎?

回答

4

Keras只是隱藏了Tensorflow(和其他後端)的複雜性,就這些。

如果您需要/希望更好地控制底層發生的事情,您可以直接使用Tensorflow(您可以控制幾乎所有事情,並且可以確保您的實施有效地按照您的要求進行)。

如果你只是想快速原型和開發你的模型,然後凱拉斯是好的,因爲它允許更快地做到這一點。這種折衷是因爲Keras爲你做了很多事情,而你沒有控制權,所以你放鬆了一些控制權。例如,您不能更改卷積圖層的變量名稱/範圍,因爲它們在keras圖層定義中是固定的(內核始終是「內核」,偏差始終是「偏差」)。但是,由於Tensorflow首先構建一個圖並執行它,Keras或Tensorflow中定義的相同圖的執行速度是相同的(Keras只減緩圖構造,這只是Python代碼)。

+0

謝謝你的回答。有沒有關於Keras無法完成的任何資源,但只有使用純Tensorflow?深入學習的範圍,而不是一般的圖計算?我試圖找出,如果值得深入到Tensorflow或者如果我和Keras呆在一起很好。 – byt3

相關問題