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单元