簡體   English   中英

如何在keras.backend和keras.layers之間選擇?

[英]How to choose between keras.backend and keras.layers?

我發現keras.backendkeras.layers中有很多相同的名稱,例如keras.backend.concatenatekeras.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM