TensorFlow CNN文本分类python代码
时间: 2023-10-30 22:06:14 浏览: 39
以下是一个使用TensorFlow实现的CNN文本分类的Python代码示例:
```python
import tensorflow as tf
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.datasets import imdb
# 加载IMDB数据集
(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=10000)
# 对序列进行填充,保证输入的长度相同
maxlen = 100
x_train = pad_sequences(x_train, maxlen=maxlen)
x_test = pad_sequences(x_test, maxlen=maxlen)
# 定义模型
model = tf.keras.models.Sequential([
tf.keras.layers.Embedding(input_dim=10000, output_dim=100, input_length=maxlen),
tf.keras.layers.Conv1D(filters=32, kernel_size=5, activation='relu'),
tf.keras.layers.MaxPooling1D(pool_size=2),
tf.keras.layers.Conv1D(filters=64, kernel_size=5, activation='relu'),
tf.keras.layers.MaxPooling1D(pool_size=2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(units=64, activation='relu'),
tf.keras.layers.Dense(units=1, activation='sigmoid')
])
# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=10, batch_size=128, validation_data=(x_test, y_test))
```
这个模型使用了一个Embedding层将输入的单词序列转换为向量形式,然后通过两个卷积层和池化层提取特征,最后通过全连接层输出结果。在训练过程中,使用了Adam优化器和二元交叉熵损失函数。