tensorflow2实现bilstm
时间: 2023-10-10 16:07:59 浏览: 74
下面是使用 TensorFlow 2 实现 BiLSTM 的示例代码:
```python
import tensorflow as tf
# 定义模型
class BiLSTM(tf.keras.Model):
def __init__(self, vocab_size, embedding_dim, hidden_dim):
super(BiLSTM, self).__init__()
self.embedding = tf.keras.layers.Embedding(vocab_size, embedding_dim)
self.bilstm = tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(hidden_dim))
self.dense = tf.keras.layers.Dense(1, activation='sigmoid')
def call(self, inputs, training=None, mask=None):
x = self.embedding(inputs)
x = self.bilstm(x)
x = self.dense(x)
return x
# 训练模型
vocab_size = 1000
embedding_dim = 32
hidden_dim = 64
model = BiLSTM(vocab_size, embedding_dim, hidden_dim)
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
x_train = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
y_train = [0, 1, 1]
model.fit(x_train, y_train, epochs=10, batch_size=1)
# 预测
x_test = [[1, 2, 3]]
y_pred = model.predict(x_test)
print(y_pred)
```
在上面的代码中,我们首先定义了一个 BiLSTM 模型,该模型包含一个 Embedding 层、一个双向 LSTM 层和一个全连接层。然后我们使用 `model.compile()` 方法指定了损失函数和优化器,并使用 `model.fit()` 方法训练模型。最后,我们使用 `model.predict()` 方法对输入进行预测,得到输出结果。
阅读全文