1
0
Fork 0
mirror of https://github.com/prise6/smart-iss-posts synced 2024-05-05 07:03:10 +02:00
smart-iss-posts/notebooks/test_collection.ipynb

533 lines
947 KiB
Plaintext
Raw Permalink Normal View History

2019-03-07 12:23:25 +01:00
{
"cells": [
{
"cell_type": "code",
2019-03-07 17:32:02 +01:00
"execution_count": 4,
2019-03-07 12:23:25 +01:00
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"os.chdir(os.getcwd() + '/..')"
]
},
{
"cell_type": "code",
2019-03-07 17:32:02 +01:00
"execution_count": 5,
2019-03-07 12:23:25 +01:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"source": [
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "code",
2019-03-07 17:32:02 +01:00
"execution_count": 6,
2019-03-07 12:23:25 +01:00
"metadata": {},
"outputs": [],
"source": [
"from iss.tools.config import Config\n",
"import pandas as pd\n",
"import datetime as dt\n",
"import time\n",
"import numpy as np\n",
"import os\n",
"import re\n",
"import PIL\n",
"from iss.data.CollectionManager import CollectionManagerFromDirectory"
]
},
{
"cell_type": "code",
2019-03-07 17:32:02 +01:00
"execution_count": 7,
2019-03-07 12:23:25 +01:00
"metadata": {},
2019-03-07 17:32:02 +01:00
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ok\n"
]
}
],
2019-03-07 12:23:25 +01:00
"source": [
2019-03-07 17:32:02 +01:00
"cfg = Config()"
2019-03-07 12:23:25 +01:00
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
2019-03-07 17:32:02 +01:00
"execution_count": 8,
2019-03-07 12:23:25 +01:00
"metadata": {},
"outputs": [],
"source": [
2019-03-07 17:32:02 +01:00
"collection = CollectionManagerFromDirectory(config = cfg)"
2019-03-07 12:23:25 +01:00
]
},
{
"cell_type": "code",
2019-03-07 17:32:02 +01:00
"execution_count": 9,
2019-03-07 12:23:25 +01:00
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'total': 13625}"
]
},
2019-03-07 17:32:02 +01:00
"execution_count": 9,
2019-03-07 12:23:25 +01:00
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"collection.count().volumes"
]
},
{
"cell_type": "code",
2019-03-07 17:32:02 +01:00
"execution_count": 10,
2019-03-07 12:23:25 +01:00
"metadata": {},
"outputs": [],
"source": [
"collection.populateDirectories()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### test generator"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"os.environ[\"CUDA_DEVICE_ORDER\"] = \"PCI_BUS_ID\" # see issue #152\n",
"os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"\"\n",
"import keras"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"datagen = keras.preprocessing.image.ImageDataGenerator(\n",
" rescale = 0\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found 1363 images belonging to 1 classes.\n"
]
}
],
"source": [
"train_generator = datagen.flow_from_directory(\n",
" collection.dir_valid+'/..',\n",
" target_size=(45, 80),\n",
" color_mode='rgb',\n",
" classes=None,\n",
" class_mode='input',\n",
" batch_size=24, \n",
" shuffle=True,\n",
" seed=None,\n",
" save_to_dir=None,\n",
" save_prefix='',\n",
" save_format='jpg',\n",
" follow_links=False,\n",
" subset=None,\n",
" interpolation='nearest'\n",
")\n",
"np_arr_o = train_generator.next()[1]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(24, 45, 80, 3)"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np_arr_o.shape"
]
},
{
"cell_type": "code",
"execution_count": 208,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[[[ 9., 20., 26.],\n",
" [ 9., 20., 26.],\n",
" [ 9., 20., 26.],\n",
" ..., \n",
" [ 5., 5., 5.],\n",
" [ 5., 5., 5.],\n",
" [ 5., 5., 5.]],\n",
"\n",
" [[ 9., 20., 26.],\n",
" [ 9., 20., 26.],\n",
" [ 9., 20., 26.],\n",
" ..., \n",
" [ 5., 5., 5.],\n",
" [ 5., 5., 5.],\n",
" [ 5., 5., 5.]],\n",
"\n",
" [[ 10., 21., 27.],\n",
" [ 10., 21., 27.],\n",
" [ 10., 21., 27.],\n",
" ..., \n",
" [ 5., 5., 5.],\n",
" [ 5., 5., 5.],\n",
" [ 5., 5., 5.]],\n",
"\n",
" ..., \n",
" [[ 170., 173., 224.],\n",
" [ 171., 174., 225.],\n",
" [ 170., 173., 224.],\n",
" ..., \n",
" [ 136., 142., 216.],\n",
" [ 136., 142., 216.],\n",
" [ 136., 142., 216.]],\n",
"\n",
" [[ 153., 156., 207.],\n",
" [ 154., 157., 208.],\n",
" [ 154., 157., 208.],\n",
" ..., \n",
" [ 136., 142., 216.],\n",
" [ 136., 142., 216.],\n",
" [ 136., 142., 216.]],\n",
"\n",
" [[ 144., 147., 198.],\n",
" [ 145., 148., 199.],\n",
" [ 144., 147., 198.],\n",
" ..., \n",
" [ 136., 142., 216.],\n",
" [ 136., 142., 216.],\n",
" [ 135., 141., 215.]]]], dtype=float32)"
]
},
"execution_count": 208,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np_arr_o"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"#np_arr = np.reshape(np_arr_o, (720, 1280, 3))\n",
"#np_arr[0][0]\n",
"np_arr = np_arr_o.astype('uint8')"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<PIL.Image.Image image mode=RGB size=80x45 at 0x7F669F0F8278>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"PIL.Image.fromarray(np_arr[0], 'RGB')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'Image' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-17-8230afe219a4>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mimg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mImage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'/home/jovyan/work/data/processed/models/autoencoder/valid/k/20170416-013001.jpg'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mimg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0masarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0muint8\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mNameError\u001b[0m: name 'Image' is not defined"
]
}
],
"source": [
"img = Image.open('/home/jovyan/work/data/processed/models/autoencoder/valid/k/20170416-013001.jpg')\n",
"img.load()\n",
"data = np.asarray(img, dtype=np.uint8)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'data' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-18-047ed65ff157>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mNameError\u001b[0m: name 'data' is not defined"
]
}
],
"source": [
"data.shape"
]
},
{
"cell_type": "code",
"execution_count": 224,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 9, 20, 26],\n",
" [ 9, 20, 26],\n",
" [ 9, 20, 26],\n",
" ..., \n",
" [ 5, 5, 5],\n",
" [ 5, 5, 5],\n",
" [ 5, 5, 5]], dtype=uint8)"
]
},
"execution_count": 224,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[0]"
]
},
{
"cell_type": "code",
"execution_count": 225,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<PIL.Image.Image image mode=RGB size=1280x720 at 0x7FF412012908>"
]
},
"execution_count": 225,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"PIL.Image.fromarray(data, 'RGB')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Test autoencoder"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"# https://blog.keras.io/building-autoencoders-in-keras.html\n",
"from keras.layers import Input, Dense, Conv2D, MaxPooling2D, UpSampling2D, Reshape, Flatten\n",
"from keras.models import Model\n",
"from keras import backend as K\n",
"\n",
"input_img = Input((45, 80, 3)) # adapt this if using `channels_first` image data format\n",
"\n",
"x = Conv2D(1, (3, 3), activation='relu', padding='valid', name = \"enc_conv_1\", strides = 2)(input_img)\n",
"encoded = MaxPooling2D((2, 2), padding='same')(x)\n",
"\n",
"# at this point the representation is (11, 20, 8) i.e. 480-dimensional\n",
"\n",
"x = Conv2D(1, (3, 3), activation='relu', padding = 'same', name = \"dec_conv_1\")(encoded)\n",
"x = UpSampling2D((2, 2))(x)\n",
"x = Flatten()(x)\n",
"x = Dense(10800, input_shape = (48, 80, 1))(x)\n",
"decoded = Reshape((45, 80, 3))(x)\n",
"# decoded = Conv2D(1, (3, 3), activation='sigmoid', padding='same', name = \"dec_conv_4\")(x)\n",
"\n",
"autoencoder = Model(input_img, decoded)\n",
"autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"input_4 (InputLayer) (None, 45, 80, 3) 0 \n",
"_________________________________________________________________\n",
"enc_conv_1 (Conv2D) (None, 22, 39, 1) 28 \n",
"_________________________________________________________________\n",
"max_pooling2d_6 (MaxPooling2 (None, 11, 20, 1) 0 \n",
"_________________________________________________________________\n",
"dec_conv_1 (Conv2D) (None, 11, 20, 1) 10 \n",
"_________________________________________________________________\n",
"up_sampling2d_8 (UpSampling2 (None, 22, 40, 1) 0 \n",
"_________________________________________________________________\n",
"flatten_4 (Flatten) (None, 880) 0 \n",
"_________________________________________________________________\n",
"dense_4 (Dense) (None, 10800) 9514800 \n",
"_________________________________________________________________\n",
"reshape_4 (Reshape) (None, 45, 80, 3) 0 \n",
"=================================================================\n",
"Total params: 9,514,838\n",
"Trainable params: 9,514,838\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
]
}
],
"source": [
"autoencoder.summary()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/2\n",
" 174/1000 [====>.........................] - ETA: 4:53 - loss: -1657.1020"
]
},
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-20-570bbfc46c15>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mautoencoder\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit_generator\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrain_generator\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msteps_per_epoch\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1000\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mepochs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/keras/legacy/interfaces.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 89\u001b[0m warnings.warn('Update your `' + object_name + '` call to the ' +\n\u001b[1;32m 90\u001b[0m 'Keras 2 API: ' + signature, stacklevel=2)\n\u001b[0;32m---> 91\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 92\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_original_function\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 93\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/keras/engine/training.py\u001b[0m in \u001b[0;36mfit_generator\u001b[0;34m(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)\u001b[0m\n\u001b[1;32m 1416\u001b[0m \u001b[0muse_multiprocessing\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0muse_multiprocessing\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1417\u001b[0m \u001b[0mshuffle\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mshuffle\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1418\u001b[0;31m initial_epoch=initial_epoch)\n\u001b[0m\u001b[1;32m 1419\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1420\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0minterfaces\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlegacy_generator_methods_support\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/keras/engine/training_generator.py\u001b[0m in \u001b[0;36mfit_generator\u001b[0;34m(model, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)\u001b[0m\n\u001b[1;32m 179\u001b[0m \u001b[0mbatch_index\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 180\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0msteps_done\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0msteps_per_epoch\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 181\u001b[0;31m \u001b[0mgenerator_output\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0moutput_generator\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 182\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 183\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mgenerator_output\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'__len__'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/site-packages/keras/utils/data_utils.py\u001b[0m in \u001b[0;36mget\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 683\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 684\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mis_running\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 685\u001b[0;31m \u001b[0minputs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mqueue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mblock\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 686\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mqueue\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtask_done\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 687\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0minputs\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/multiprocessing/pool.py\u001b[0m in \u001b[0;36mget\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 636\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 637\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 638\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 639\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mready\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 640\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mTimeoutError\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/multiprocessing/pool.py\u001b[0m in \u001b[0;36mwait\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 633\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 634\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 635\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_event\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 636\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 637\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/threading.py\u001b[0m in \u001b[0;36mwait\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 549\u001b[0m \u001b[0msignaled\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_flag\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 550\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0msignaled\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 551\u001b[0;31m \u001b[0msignaled\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_cond\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwait\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 552\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0msignaled\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 553\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/conda/lib/python3.6/threading.py\u001b[0m in \u001b[0;36mwait\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 293\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# restore state no matter what (e.g., KeyboardInterrupt)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 294\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtimeout\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 295\u001b[0;31m \u001b[0mwaiter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0macquire\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 296\u001b[0m \u001b[0mgotit\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 297\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mKeyboardInterrupt\u001b[0m: "
]
}
],
"source": [
"autoencoder.fit_generator(train_generator, steps_per_epoch=1000, epochs = 2)"
]
2019-03-07 17:32:02 +01:00
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
2019-03-07 12:23:25 +01:00
}
],
"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.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}