我正在关注“使用 TensorFlow 2.0 为聊天机器人训练变压器模型”的帖子。尽管代码在 colab 中运行良好,但我在本地机器上遇到了错误。下面是代码片段。
def encoder_layer(units, d_model, num_heads, dropout, name="encoder_layer"):
inputs = tf.keras.Input(shape=(None, d_model), name="inputs")
padding_mask = tf.keras.Input(shape=(1, 1, None), name="padding_mask")
attention = MultiHeadAttention(
d_model, num_heads, name="attention")({
'query': inputs,
'key': inputs,
'value': inputs,
'mask': padding_mask
})
attention = tf.keras.layers.Dropout(rate=dropout)(attention)
attention = tf.keras.layers.LayerNormalization(
epsilon=1e-6)(inputs + attention)
outputs = tf.keras.layers.Dense(units=units, activation='relu')(attention)
outputs = tf.keras.layers.Dense(units=d_model)(outputs)
outputs = tf.keras.layers.Dropout(rate=dropout)(outputs)
outputs = tf.keras.layers.LayerNormalization(
epsilon=1e-6)(attention + outputs)
return tf.keras.Model(
inputs=[inputs, padding_mask], outputs=outputs, name=name)
Run Code Online (Sandbox Code Playgroud)
我用下面的函数调用调用了上面的函数;
sample_encoder_layer = encoder_layer(
units=512,
d_model=128,
num_heads=4, …Run Code Online (Sandbox Code Playgroud)