yangyang12138

导航

tensorflow2(一)

文本分类

  仍然是利用神经网络的rnn来完成语义模型的构建,然后通过softmax来完成文本的分类。只是tensorflow的实现方式和以前有些不同。

引入数据

import tensorflow_datasets as tfds
import tensorflow as tf

print(tf.version.VERSION)

dataset, info = tfds.load('imdb_reviews/subwords8k', with_info=True,as_supervised=True)
train_dataset, test_dataset = dataset['train'], dataset['test']

构建批量迭代的数据

BUFFER_SIZE = 10000
BATCH_SIZE = 64
train_dataset = train_dataset.shuffle(BUFFER_SIZE)
train_dataset = train_dataset.padded_batch(BATCH_SIZE)

test_dataset = test_dataset.padded_batch(BATCH_SIZE)

创建神经网络模型

model = tf.keras.Sequential([
    tf.keras.layers.Embedding(encoder.vocab_size, 64),
    tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64)),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(1)
])

model.compile(loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),
optimizer=tf.keras.optimizers.Adam(1e-4),
metrics=['accuracy'])

其中Dense代表全连接层,Bidirectional是双向传播加一个pooling层,LSTM是rnn的lstm单元

posted on 2020-09-17 00:14  杨杨09265  阅读(140)  评论(0编辑  收藏  举报