![](/img/trans.png)
[英]What is the difference between tensorflow.keras.layers and keras.layers?
[英]How to choose between keras.backend and keras.layers?
我發現keras.backend
或keras.layers
中有很多相同的名稱,例如keras.backend.concatenate
和keras.layers.Concatenate
。 我隱約知道一個是張量,另一個是層。 但是,當代碼太大時,那么多函數使我感到困惑,即張量或層。 有人有解決這個問題的好主意嗎?
我發現的一種方法是首先在一個函數中定義所有占位符,但是該函數將其作為變量可能會在最后返回層,而另一個函數將這一層作為變量可能會返回另一個變量。
如果存在可以實現您想要的功能的圖層,則絕對應該使用keras.layers
。 這是因為在構建模型時,Keras圖層僅接受Keras張量(即圖層的輸出)作為輸入。 但是, keras.backend.*
中方法的輸出不是keras.backend.*
Tensor(它是后端Tensor,例如TensorFlow Tensor
),因此您不能將它們直接傳遞到圖層。
但是,如果存在無法通過圖層完成的操作,則可以在Lambda
圖層中使用keras.backned.*
方法執行該自定義操作/計算。
注意: Keras Tensor實際上與后端Tensor具有相同的類型(例如tf.Tensor
); 但是,它增加了Keras在構建模型時需要的一些其他特定於Keras的屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.