如何在keras.backend和keras.layers之间选择?

and*_*ndy 0 python deep-learning keras tensorflow keras-layer

我发现keras.backendor 中有很多相同的名称keras.layers,例如keras.backend.concatenatekeras.layers.Concatenate。我隐约知道一个是张量,另一个是层。但是,当代码太大时,那么多函数使我感到困惑,即张量或层。有人有解决这个问题的好主意吗?

我发现的一种方法是首先在一个函数中定义所有占位符,但是该函数将其视为变量可能会在最后返回层,而另一个函数将这一层视为变量可能会返回另一个变量。

tod*_*day 5

keras.layers如果有一层可以实现您想要的功能,则绝对应该使用。这是因为在构建模型时,Keras图层仅接受Keras张量(即图层的输出)作为输入。但是,in中方法的输出keras.backend.*不是Keras Tensor(它是后端Tensor,例如TensorFlow Tensor),因此您不能将它们直接传递到图层。

虽然,如果某层无法完成某项操作,则可以使用层中的keras.backned.*方法Lambda来执行该自定义操作/计算。

注意: Keras Tensor实际上与后端Tensor具有相同的类型(例如tf.Tensor);但是,它增加了Keras在构建模型时需要的一些其他特定于Keras的属性。