tf.keras.layers.xx 可以独立于 tf.keras.Sequential 或模型使用吗?

Can tf.keras.layers.xx be used independently from tf.keras.Sequential or Model?

在 Tensorflow 中,一些模块中的许多函数已被弃用。来自 tf.keras.layers 的已被推荐。 tutorials 通过将它们与 tf.keras.Sequential (Sequential)tf.keras.Model (Model) 相关联来提供它们的用法示例。我想知道是否可以在 tf.keras.layers (e.g., Dense, Conv1D, etc.) 中使用一些 类 而无需使用 SequentialModel

之前我的代码中使用了以下内容:

gru = tf.contrib.rnn.GRUCell(d)
states, output = tf.nn.dynamic_rnn(gru, inputs)

由于 tf.contrib.rnntf.nn.dynamic_rnn 都已被弃用,我想知道是否可以用以下命令替换它们而无需在中添加 SequentialModel代码。

gru = tf.keras.layers.GRUCell(d)
states, output = keras.layers.RNN(gru)(inputs)

I want to know whether it's possible to use some classes in tf.keras.layers (e.g., Dense, Conv1D, etc.) without using Sequential or Model.

是的,当然是。我们可以直接 'call' 层直接做这样的事情,例如:

layer_example = tf.keras.layers.Dense(2,input_shape=(-1,24))
example_tensor = tf.random.uniform(shape=(2, 24))
layer_example(example_tensor)

请注意,我们首先使用 tf.keras.layers.Dense 创建图层 class 的实例,然后 调用 该实例 layer_example(example_tensor)

我们也可以(当然)将其扩展到 GRU 示例。像这样:

example_tensor = tf.random.uniform(shape=(2, 24, 12))
gru = tf.keras.layers.GRUCell(2)
states, output = tf.keras.layers.RNN(gru)(example_tensor)