Keras 例程lmdb_lstm.py理解

来源:互联网 发布:淘宝网中老年女冬装 编辑:程序博客网 时间:2024/06/05 13:31

1、官网下载后,直接运行lmdb_lstm.py。但是下载的速度很慢。

解决办法: 在Ubuntu16.04系统下,首先下载imdb.npz数据集(百度网盘下载地址),只需将 imdb.npz放在 ~/.keras/datasets/ 目录下即可。

在命令窗口进入imdb.npz数据集当前下载目录,然后输入:

sudo mkdir ~/.keras/datasets/sudo cp imdb.npz ~/.keras/datasets/

运行例程,即可跳过下载数据过程。

2、程序分析

# -*- coding: utf-8 -*-# 加载 Keras 模型相关的 Python 模块import numpy as npnp.random.seed(1337)  # for reproducibilityfrom keras.preprocessing import sequencefrom keras.models import Sequentialfrom keras.layers import Dense, Activation, Embeddingfrom keras.layers import LSTMfrom keras.datasets import imdbmax_features = 20000maxlen = 80  # cut texts after this number of words (among top max_features most common words)batch_size = 32# 加载数据print('Loading data...')(X_train, y_train), (X_test, y_test) = imdb.load_data(nb_words=max_features)print(len(X_train), 'train sequences')print(len(X_test), 'test sequences')# 数据预处理print('Pad sequences (samples x time)')X_train = sequence.pad_sequences(X_train, maxlen=maxlen)X_test = sequence.pad_sequences(X_test, maxlen=maxlen)print('X_train shape:', X_train.shape)print('X_test shape:', X_test.shape)# 构建 LSTM 模型print('Build model...')model = Sequential()model.add(Embedding(max_features, 128, dropout=0.2)) # 词嵌入model.add(LSTM(128, dropout_W=0.2, dropout_U=0.2)) # LSTM 层model.add(Dense(1))# 二分类层model.add(Activation('sigmoid'))model.summary() # 打印模型# try using different optimizers and different optimizer configsmodel.compile(loss='binary_crossentropy',              optimizer='adam',              metrics=['accuracy'])print('Train...')model.fit(X_train, y_train, batch_size=batch_size, nb_epoch=15,          validation_data=(X_test, y_test))score, acc = model.evaluate(X_test, y_test,                            batch_size=batch_size)print('Test score:', score)print('Test accuracy:', acc)

参考文献:

  1. 利用 TensorFlow 高级 API Keras 实现 MLP,CNN,LSTM
  2. Keras Recurrent Layers 解析
  3. IMDB Movie reviews sentiment classification
  4. IMDB影评倾向分类
  5. IMDB影评倾向分类 - N-Gram
原创粉丝点击