Skip to content

Instantly share code, notes, and snippets.

@chck
Created March 14, 2018 17:37
Show Gist options
  • Save chck/8360c2e114683e5e42c852b114fbeeba to your computer and use it in GitHub Desktop.
Save chck/8360c2e114683e5e42c852b114fbeeba to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"\"\"\"Reference: https://github.com/keras-team/keras/blob/master/examples/imdb_cnn.py\n",
"\"\"\"\n",
"\n",
"import os\n",
"from tensorflow.python.keras.preprocessing.sequence import pad_sequences\n",
"from tensorflow.python.keras.models import Sequential\n",
"from tensorflow.python.keras.layers import Dense, Dropout, Activation, Embedding, Conv1D, GlobalMaxPool1D, InputLayer\n",
"from keras.datasets import imdb # https://github.com/tensorflow/tensorflow/issues/16358\n",
"# from keras.datasets import reuters\n",
"\n",
"os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((25000,), (25000,))"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"\"\"Load data\n",
"\"\"\"\n",
"\n",
"(X_train, y_train), (X_val, y_val) = imdb.load_data(num_words=5000)\n",
"# (X_train, y_train), (X_val, y_val) = reuters.load_data(num_words=5000)\n",
"X_train.shape, X_val.shape"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((25000, 400), (25000, 400))"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"\"\"Preprocess\n",
"\"\"\"\n",
"\n",
"X_train = pad_sequences(X_train, maxlen=400)\n",
"X_val = pad_sequences(X_val, maxlen=400)\n",
"X_train.shape, X_val.shape"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"input_9 (InputLayer) (None, 400) 0 \n",
"_________________________________________________________________\n",
"embedding_9 (Embedding) (None, 400, 50) 250000 \n",
"_________________________________________________________________\n",
"dropout_16 (Dropout) (None, 400, 50) 0 \n",
"_________________________________________________________________\n",
"conv1d_9 (Conv1D) (None, 398, 250) 37750 \n",
"_________________________________________________________________\n",
"global_max_pooling1d_9 (Glob (None, 250) 0 \n",
"_________________________________________________________________\n",
"dense_16 (Dense) (None, 250) 62750 \n",
"_________________________________________________________________\n",
"dropout_17 (Dropout) (None, 250) 0 \n",
"_________________________________________________________________\n",
"dense_17 (Dense) (None, 1) 251 \n",
"=================================================================\n",
"Total params: 350,751\n",
"Trainable params: 350,751\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
]
}
],
"source": [
"model = Sequential([\n",
" InputLayer(input_shape=(400, )),\n",
" Embedding(input_dim=5000, output_dim=50),\n",
" Dropout(0.2),\n",
" Conv1D(250, 3, activation='relu'),\n",
" GlobalMaxPool1D(),\n",
" Dense(250, activation='relu'),\n",
" Dropout(0.2),\n",
"# Activation('relu'),\n",
" Dense(1, activation='sigmoid'),\n",
"])\n",
"\n",
"model.compile(\n",
" loss='binary_crossentropy',\n",
" optimizer='adam',\n",
" metrics=['accuracy'],\n",
")\n",
"\n",
"model.summary()"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 25000 samples, validate on 25000 samples\n",
"Epoch 1/10\n",
"25000/25000 [==============================]25000/25000 [==============================] - 271s 11ms/step - loss: 0.6829 - acc: 0.5407 - val_loss: 0.6249 - val_acc: 0.6465\n",
"\n",
"Epoch 2/10\n",
"25000/25000 [==============================]25000/25000 [==============================] - 289s 12ms/step - loss: 0.4901 - acc: 0.7613 - val_loss: 0.4464 - val_acc: 0.7880\n",
"\n",
"Epoch 3/10\n",
"25000/25000 [==============================]25000/25000 [==============================] - 274s 11ms/step - loss: 0.3890 - acc: 0.8243 - val_loss: 0.3674 - val_acc: 0.8386\n",
"\n",
"Epoch 4/10\n",
"25000/25000 [==============================]25000/25000 [==============================] - 285s 11ms/step - loss: 0.3357 - acc: 0.8538 - val_loss: 0.3220 - val_acc: 0.8614\n",
"\n",
"Epoch 5/10\n",
"25000/25000 [==============================]25000/25000 [==============================] - 281s 11ms/step - loss: 0.2968 - acc: 0.8737 - val_loss: 0.2940 - val_acc: 0.8774\n",
"\n",
"Epoch 6/10\n",
"25000/25000 [==============================]25000/25000 [==============================] - 288s 12ms/step - loss: 0.2674 - acc: 0.8884 - val_loss: 0.3458 - val_acc: 0.8475\n",
"\n",
"Epoch 7/10\n",
"25000/25000 [==============================]25000/25000 [==============================] - 275s 11ms/step - loss: 0.2426 - acc: 0.8998 - val_loss: 0.2805 - val_acc: 0.8834\n",
"\n",
"Epoch 8/10\n",
"25000/25000 [==============================]25000/25000 [==============================] - 287s 11ms/step - loss: 0.2269 - acc: 0.9077 - val_loss: 0.2982 - val_acc: 0.8781\n",
"\n",
"Epoch 9/10\n",
"25000/25000 [==============================]25000/25000 [==============================] - 288s 12ms/step - loss: 0.2078 - acc: 0.9170 - val_loss: 0.2795 - val_acc: 0.8868\n",
"\n",
"Epoch 10/10\n",
"25000/25000 [==============================]25000/25000 [==============================] - 283s 11ms/step - loss: 0.2009 - acc: 0.9193 - val_loss: 0.2896 - val_acc: 0.8776\n",
"\n"
]
}
],
"source": [
"stack = model.fit(\n",
" X_train,\n",
" y_train,\n",
" batch_size=32,\n",
" epochs=10,\n",
" validation_data=(X_val, y_val),\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1335f1518>"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1335f14a8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"import pandas as pd\n",
"pd.DataFrame(stack.history)[['loss', 'val_loss']].plot()"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1335f1748>"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x12727cef0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pd.DataFrame(stack.history)[['acc', 'val_acc']].plot()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment