赞
踩
一、实验目的:
理解循环神经网络的基本概念和原理;了解循环神经网络处理文本数据的基本方法;掌握循环神经网络处理文本数据的实践方法,并实现文本情感分析任务。
使用Keras框架定义并训练循环神经网络模型,并进行文本情感分析。
- import tensorflow as tf
- from tensorflow import keras
- import matplotlib.pyplot as plt
-
- import numpy as np
-
- # 加载 IMDB 数据
- imdb = keras.datasets.imdb
- (train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)
- print("训练记录数量:{},标签数量:{}".format(len(train_data), len(train_labels)))
- print(train_data[0])
-
- # 数据标准化
- train_data = keras.preprocessing.sequence.pad_sequences(train_data, padding='post', maxlen=256)
- test_data = keras.preprocessing.sequence.pad_sequences(test_data, padding='post', maxlen=256)
- print(train_data[0])
- # 构建模型
- vocab_size = 10000
- model = tf.keras.Sequential([tf.keras.layers.Embedding(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.summary()
- # 配置并训练模型
- model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
- x_val = train_data[:10000]
- partial_x_train = train_data[10000:]
- y_val = train_labels[:10000]
- partial_y_train = train_labels[10000:]
- history = model.fit(partial_x_train, partial_y_train, epochs=10, batch_size=512, validation_data=(x_val, y_val),
- verbose=1)
-
- result = model.evaluate(test_data, test_labels, verbose=2)
- print(result)
- # 训练过程可视化
- history_dict = history.history
- print(history_dict.keys())
-
-
- def plot_graphs(history, string):
- plt.plot(history.history[string])
- plt.plot(history.history['val_' + string])
- plt.xlabel("Epochs")
- plt.ylabel(string)
- plt.legend([string, 'val_' + string])
- plt.show()
-
-
- plot_graphs(history, "accuracy")
-
-
- plot_graphs(history, "loss")
运行结果可视化:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。