Skip to content

Instantly share code, notes, and snippets.

@Bek
Last active November 15, 2018 01:47
Show Gist options
  • Save Bek/d586504c693857a59eb4f67909a2f6bb to your computer and use it in GitHub Desktop.
Save Bek/d586504c693857a59eb4f67909a2f6bb to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pyBigWig\n",
"import numpy as np\n",
"from tensorflow.keras.layers import Conv1D, Dense, MaxPooling1D, Flatten\n",
"from tensorflow.keras.models import Sequential"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"bw_input = pyBigWig.open('/data/GM12878/SRR1552485.fastqbowtie2.sorted.pos.BedGraph.sort.bedGraph.bw')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"bw_output = pyBigWig.open('/data/GM12878/ENCFF154XCY.bigWig')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"number_of_bins_input = int(bw_input.chroms()['chr17'] / 50)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"inputs_raw = np.nan_to_num(np.array(bw_input.stats('chr17', nBins=number_of_bins_input), dtype=float))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"number_of_bins_output = int(bw_output.chroms()['chr17'] / 50)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"outputs_raw = np.nan_to_num(np.array(bw_output.stats('chr17', nBins=number_of_bins_output), dtype=float))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"inputs_normalized = (inputs_raw-min(inputs_raw))/(max(inputs_raw)-min(inputs_raw))"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"gene_region_size = 3000"
]
},
{
"cell_type": "code",
"execution_count": 156,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(541, 3000, 1)\n",
"(541, 3000)\n"
]
}
],
"source": [
"inputs = inputs_normalized[:(-(len(inputs_normalized) % gene_region_size))].reshape(-1,gene_region_size,1)\n",
"outputs = outputs_raw[:(-(len(outputs_raw) % gene_region_size))].reshape(-1,gene_region_size)\n",
"print(inputs.shape)\n",
"print(outputs.shape)"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import train_test_split\n",
"train_features, test_features, train_labels, test_labels = train_test_split(\n",
" inputs, outputs, test_size=0.25, random_state=42)\n"
]
},
{
"cell_type": "code",
"execution_count": 139,
"metadata": {},
"outputs": [],
"source": [
"from tensorflow.keras.layers import Conv1D, Dense, MaxPooling1D, Flatten\n",
"from tensorflow.keras.models import Sequential\n",
"from keras.utils import multi_gpu_model"
]
},
{
"cell_type": "code",
"execution_count": 140,
"metadata": {},
"outputs": [],
"source": [
"model = Sequential()\n"
]
},
{
"cell_type": "code",
"execution_count": 141,
"metadata": {},
"outputs": [],
"source": [
"model.add(Conv1D(filters=int(gene_region_size / 10), kernel_size=4, activation='relu',\n",
" input_shape=(gene_region_size,1)))"
]
},
{
"cell_type": "code",
"execution_count": 142,
"metadata": {},
"outputs": [],
"source": [
"model.add(MaxPooling1D(pool_size=2))"
]
},
{
"cell_type": "code",
"execution_count": 143,
"metadata": {},
"outputs": [],
"source": [
"model.add(Conv1D(filters=int(gene_region_size / 10), kernel_size=4, activation='relu'))\n"
]
},
{
"cell_type": "code",
"execution_count": 144,
"metadata": {},
"outputs": [],
"source": [
"model.add(MaxPooling1D(pool_size=2))"
]
},
{
"cell_type": "code",
"execution_count": 145,
"metadata": {},
"outputs": [],
"source": [
"model.add(Conv1D(filters=int(gene_region_size / 10), kernel_size=4, activation='relu'))"
]
},
{
"cell_type": "code",
"execution_count": 146,
"metadata": {},
"outputs": [],
"source": [
"model.add(Conv1D(filters=int(gene_region_size / 10), kernel_size=4, activation='relu', dilation_rate=32))"
]
},
{
"cell_type": "code",
"execution_count": 147,
"metadata": {},
"outputs": [],
"source": [
"model.add(Conv1D(filters=int(gene_region_size / 10), kernel_size=4, activation='relu', dilation_rate=16))"
]
},
{
"cell_type": "code",
"execution_count": 148,
"metadata": {},
"outputs": [],
"source": [
"model.add(Conv1D(filters=int(gene_region_size / 10), kernel_size=4, activation='relu', dilation_rate=8))"
]
},
{
"cell_type": "code",
"execution_count": 149,
"metadata": {},
"outputs": [],
"source": [
"model.add(Conv1D(filters=int(gene_region_size / 10), kernel_size=4, activation='relu', dilation_rate=4))"
]
},
{
"cell_type": "code",
"execution_count": 150,
"metadata": {},
"outputs": [],
"source": [
"model.add(Conv1D(filters=int(gene_region_size / 10), kernel_size=4, activation='relu', dilation_rate=2))"
]
},
{
"cell_type": "code",
"execution_count": 151,
"metadata": {},
"outputs": [],
"source": [
"model.add(Flatten())"
]
},
{
"cell_type": "code",
"execution_count": 152,
"metadata": {},
"outputs": [],
"source": [
"model.add(Dense(gene_region_size, activation='relu'))"
]
},
{
"cell_type": "code",
"execution_count": 153,
"metadata": {},
"outputs": [],
"source": [
"model.compile(loss='mean_squared_error', optimizer='adam', \n",
" metrics=['mean_squared_error'])"
]
},
{
"cell_type": "code",
"execution_count": 154,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"conv1d_56 (Conv1D) (None, 2997, 300) 1500 \n",
"_________________________________________________________________\n",
"max_pooling1d_18 (MaxPooling (None, 1498, 300) 0 \n",
"_________________________________________________________________\n",
"conv1d_57 (Conv1D) (None, 1495, 300) 360300 \n",
"_________________________________________________________________\n",
"max_pooling1d_19 (MaxPooling (None, 747, 300) 0 \n",
"_________________________________________________________________\n",
"conv1d_58 (Conv1D) (None, 744, 300) 360300 \n",
"_________________________________________________________________\n",
"conv1d_59 (Conv1D) (None, 648, 300) 360300 \n",
"_________________________________________________________________\n",
"conv1d_60 (Conv1D) (None, 600, 300) 360300 \n",
"_________________________________________________________________\n",
"conv1d_61 (Conv1D) (None, 576, 300) 360300 \n",
"_________________________________________________________________\n",
"conv1d_62 (Conv1D) (None, 564, 300) 360300 \n",
"_________________________________________________________________\n",
"conv1d_63 (Conv1D) (None, 558, 300) 360300 \n",
"_________________________________________________________________\n",
"flatten_3 (Flatten) (None, 167400) 0 \n",
"_________________________________________________________________\n",
"dense_7 (Dense) (None, 3000) 502203000 \n",
"=================================================================\n",
"Total params: 504,726,600\n",
"Trainable params: 504,726,600\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
]
}
],
"source": [
"model.summary()"
]
},
{
"cell_type": "code",
"execution_count": 155,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 303 samples, validate on 102 samples\n",
"Epoch 1/50\n"
]
},
{
"ename": "ResourceExhaustedError",
"evalue": "OOM when allocating tensor of shape [167400,3000] and type float\n\t [[Node: training_3/Adam/zeros_16 = Const[dtype=DT_FLOAT, value=Tensor<type: float shape: [167400,3000] values: [0 0 0]...>, _device=\"/job:localhost/replica:0/task:0/device:GPU:0\"]()]]\n\nCaused by op 'training_3/Adam/zeros_16', defined at:\n File \"/opt/miniconda3/lib/python3.6/runpy.py\", line 193, in _run_module_as_main\n \"__main__\", mod_spec)\n File \"/opt/miniconda3/lib/python3.6/runpy.py\", line 85, in _run_code\n exec(code, run_globals)\n File \"/opt/miniconda3/lib/python3.6/site-packages/ipykernel_launcher.py\", line 16, in <module>\n app.launch_new_instance()\n File \"/opt/miniconda3/lib/python3.6/site-packages/traitlets/config/application.py\", line 658, in launch_instance\n app.start()\n File \"/opt/miniconda3/lib/python3.6/site-packages/ipykernel/kernelapp.py\", line 497, in start\n self.io_loop.start()\n File \"/opt/miniconda3/lib/python3.6/site-packages/tornado/platform/asyncio.py\", line 132, in start\n self.asyncio_loop.run_forever()\n File \"/opt/miniconda3/lib/python3.6/asyncio/base_events.py\", line 422, in run_forever\n self._run_once()\n File \"/opt/miniconda3/lib/python3.6/asyncio/base_events.py\", line 1434, in _run_once\n handle._run()\n File \"/opt/miniconda3/lib/python3.6/asyncio/events.py\", line 145, in _run\n self._callback(*self._args)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tornado/platform/asyncio.py\", line 122, in _handle_events\n handler_func(fileobj, events)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tornado/stack_context.py\", line 300, in null_wrapper\n return fn(*args, **kwargs)\n File \"/opt/miniconda3/lib/python3.6/site-packages/zmq/eventloop/zmqstream.py\", line 450, in _handle_events\n self._handle_recv()\n File \"/opt/miniconda3/lib/python3.6/site-packages/zmq/eventloop/zmqstream.py\", line 480, in _handle_recv\n self._run_callback(callback, msg)\n File \"/opt/miniconda3/lib/python3.6/site-packages/zmq/eventloop/zmqstream.py\", line 432, in _run_callback\n callback(*args, **kwargs)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tornado/stack_context.py\", line 300, in null_wrapper\n return fn(*args, **kwargs)\n File \"/opt/miniconda3/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 283, in dispatcher\n return self.dispatch_shell(stream, msg)\n File \"/opt/miniconda3/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 233, in dispatch_shell\n handler(stream, idents, msg)\n File \"/opt/miniconda3/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 399, in execute_request\n user_expressions, allow_stdin)\n File \"/opt/miniconda3/lib/python3.6/site-packages/ipykernel/ipkernel.py\", line 208, in do_execute\n res = shell.run_cell(code, store_history=store_history, silent=silent)\n File \"/opt/miniconda3/lib/python3.6/site-packages/ipykernel/zmqshell.py\", line 537, in run_cell\n return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n File \"/opt/miniconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2662, in run_cell\n raw_cell, store_history, silent, shell_futures)\n File \"/opt/miniconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2785, in _run_cell\n interactivity=interactivity, compiler=compiler, result=result)\n File \"/opt/miniconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2901, in run_ast_nodes\n if self.run_code(code, result):\n File \"/opt/miniconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2961, in run_code\n exec(code_obj, self.user_global_ns, self.user_ns)\n File \"<ipython-input-155-4a1a14f5b4fd>\", line 2, in <module>\n epochs=50, verbose=1, validation_split=0.25, batch_size=16)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py\", line 1363, in fit\n validation_steps=validation_steps)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/engine/training_arrays.py\", line 91, in fit_loop\n model._make_train_function()\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py\", line 598, in _make_train_function\n params=self._collected_trainable_weights, loss=self.total_loss)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/optimizers.py\", line 471, in get_updates\n ms = [K.zeros(K.int_shape(p), dtype=K.dtype(p)) for p in params]\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/optimizers.py\", line 471, in <listcomp>\n ms = [K.zeros(K.int_shape(p), dtype=K.dtype(p)) for p in params]\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/backend.py\", line 970, in zeros\n v = array_ops.zeros(shape=shape, dtype=tf_dtype, name=name)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/ops/array_ops.py\", line 1551, in zeros\n output = fill(shape, constant(zero, dtype=dtype), name=name)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/ops/gen_array_ops.py\", line 2794, in fill\n \"Fill\", dims=dims, value=value, name=name)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py\", line 787, in _apply_op_helper\n op_def=op_def)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py\", line 454, in new_func\n return func(*args, **kwargs)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 3155, in create_op\n op_def=op_def)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 1717, in __init__\n self._traceback = tf_stack.extract_stack()\n\nResourceExhaustedError (see above for traceback): OOM when allocating tensor of shape [167400,3000] and type float\n\t [[Node: training_3/Adam/zeros_16 = Const[dtype=DT_FLOAT, value=Tensor<type: float shape: [167400,3000] values: [0 0 0]...>, _device=\"/job:localhost/replica:0/task:0/device:GPU:0\"]()]]\n",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mResourceExhaustedError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_do_call\u001b[0;34m(self, fn, *args)\u001b[0m\n\u001b[1;32m 1277\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1278\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfn\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[0m\n\u001b[0m\u001b[1;32m 1279\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mOpError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_run_fn\u001b[0;34m(feed_dict, fetch_list, target_list, options, run_metadata)\u001b[0m\n\u001b[1;32m 1262\u001b[0m return self._call_tf_sessionrun(\n\u001b[0;32m-> 1263\u001b[0;31m options, feed_dict, fetch_list, target_list, run_metadata)\n\u001b[0m\u001b[1;32m 1264\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_call_tf_sessionrun\u001b[0;34m(self, options, feed_dict, fetch_list, target_list, run_metadata)\u001b[0m\n\u001b[1;32m 1349\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_session\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moptions\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfetch_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget_list\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1350\u001b[0;31m run_metadata)\n\u001b[0m\u001b[1;32m 1351\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mResourceExhaustedError\u001b[0m: OOM when allocating tensor of shape [167400,3000] and type float\n\t [[Node: training_3/Adam/zeros_16 = Const[dtype=DT_FLOAT, value=Tensor<type: float shape: [167400,3000] values: [0 0 0]...>, _device=\"/job:localhost/replica:0/task:0/device:GPU:0\"]()]]",
"\nDuring handling of the above exception, another exception occurred:\n",
"\u001b[0;31mResourceExhaustedError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-155-4a1a14f5b4fd>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m history = model.fit(train_features, train_labels, \n\u001b[0;32m----> 2\u001b[0;31m epochs=50, verbose=1, validation_split=0.25, batch_size=16)\n\u001b[0m",
"\u001b[0;32m/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, **kwargs)\u001b[0m\n\u001b[1;32m 1361\u001b[0m \u001b[0minitial_epoch\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0minitial_epoch\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1362\u001b[0m \u001b[0msteps_per_epoch\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msteps_per_epoch\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1363\u001b[0;31m validation_steps=validation_steps)\n\u001b[0m\u001b[1;32m 1364\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1365\u001b[0m def evaluate(self,\n",
"\u001b[0;32m/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/engine/training_arrays.py\u001b[0m in \u001b[0;36mfit_loop\u001b[0;34m(model, inputs, targets, sample_weights, batch_size, epochs, verbose, callbacks, val_inputs, val_targets, val_sample_weights, shuffle, callback_metrics, initial_epoch, steps_per_epoch, validation_steps)\u001b[0m\n\u001b[1;32m 262\u001b[0m \u001b[0mins_batch\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mins_batch\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtoarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 263\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 264\u001b[0;31m \u001b[0mouts\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mins_batch\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 265\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mouts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 266\u001b[0m \u001b[0mouts\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mouts\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/backend.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, inputs)\u001b[0m\n\u001b[1;32m 2874\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'`inputs` should be a list or tuple.'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2875\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2876\u001b[0;31m \u001b[0msession\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_session\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 2877\u001b[0m \u001b[0mfeed_arrays\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 2878\u001b[0m \u001b[0marray_vals\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/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/backend.py\u001b[0m in \u001b[0;36mget_session\u001b[0;34m()\u001b[0m\n\u001b[1;32m 442\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0m_MANUAL_VAR_INIT\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 443\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0msession\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgraph\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_default\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--> 444\u001b[0;31m \u001b[0m_initialize_variables\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msession\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 445\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0msession\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 446\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/backend.py\u001b[0m in \u001b[0;36m_initialize_variables\u001b[0;34m(session)\u001b[0m\n\u001b[1;32m 673\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_keras_initialized\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 674\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0muninitialized_vars\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 675\u001b[0;31m \u001b[0msession\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvariables_module\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvariables_initializer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0muninitialized_vars\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 676\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 677\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 875\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 876\u001b[0m result = self._run(None, fetches, feed_dict, options_ptr,\n\u001b[0;32m--> 877\u001b[0;31m run_metadata_ptr)\n\u001b[0m\u001b[1;32m 878\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 879\u001b[0m \u001b[0mproto_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTF_GetBuffer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrun_metadata_ptr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_run\u001b[0;34m(self, handle, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfinal_fetches\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mfinal_targets\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mhandle\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mfeed_dict_tensor\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1099\u001b[0m results = self._do_run(handle, final_targets, final_fetches,\n\u001b[0;32m-> 1100\u001b[0;31m feed_dict_tensor, options, run_metadata)\n\u001b[0m\u001b[1;32m 1101\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1102\u001b[0m \u001b[0mresults\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/miniconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_do_run\u001b[0;34m(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 1270\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mhandle\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1271\u001b[0m return self._do_call(_run_fn, feeds, fetches, targets, options,\n\u001b[0;32m-> 1272\u001b[0;31m run_metadata)\n\u001b[0m\u001b[1;32m 1273\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1274\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_do_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_prun_fn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhandle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeeds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfetches\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_do_call\u001b[0;34m(self, fn, *args)\u001b[0m\n\u001b[1;32m 1289\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mKeyError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1290\u001b[0m \u001b[0;32mpass\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1291\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnode_def\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmessage\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1292\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1293\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_extend_graph\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mResourceExhaustedError\u001b[0m: OOM when allocating tensor of shape [167400,3000] and type float\n\t [[Node: training_3/Adam/zeros_16 = Const[dtype=DT_FLOAT, value=Tensor<type: float shape: [167400,3000] values: [0 0 0]...>, _device=\"/job:localhost/replica:0/task:0/device:GPU:0\"]()]]\n\nCaused by op 'training_3/Adam/zeros_16', defined at:\n File \"/opt/miniconda3/lib/python3.6/runpy.py\", line 193, in _run_module_as_main\n \"__main__\", mod_spec)\n File \"/opt/miniconda3/lib/python3.6/runpy.py\", line 85, in _run_code\n exec(code, run_globals)\n File \"/opt/miniconda3/lib/python3.6/site-packages/ipykernel_launcher.py\", line 16, in <module>\n app.launch_new_instance()\n File \"/opt/miniconda3/lib/python3.6/site-packages/traitlets/config/application.py\", line 658, in launch_instance\n app.start()\n File \"/opt/miniconda3/lib/python3.6/site-packages/ipykernel/kernelapp.py\", line 497, in start\n self.io_loop.start()\n File \"/opt/miniconda3/lib/python3.6/site-packages/tornado/platform/asyncio.py\", line 132, in start\n self.asyncio_loop.run_forever()\n File \"/opt/miniconda3/lib/python3.6/asyncio/base_events.py\", line 422, in run_forever\n self._run_once()\n File \"/opt/miniconda3/lib/python3.6/asyncio/base_events.py\", line 1434, in _run_once\n handle._run()\n File \"/opt/miniconda3/lib/python3.6/asyncio/events.py\", line 145, in _run\n self._callback(*self._args)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tornado/platform/asyncio.py\", line 122, in _handle_events\n handler_func(fileobj, events)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tornado/stack_context.py\", line 300, in null_wrapper\n return fn(*args, **kwargs)\n File \"/opt/miniconda3/lib/python3.6/site-packages/zmq/eventloop/zmqstream.py\", line 450, in _handle_events\n self._handle_recv()\n File \"/opt/miniconda3/lib/python3.6/site-packages/zmq/eventloop/zmqstream.py\", line 480, in _handle_recv\n self._run_callback(callback, msg)\n File \"/opt/miniconda3/lib/python3.6/site-packages/zmq/eventloop/zmqstream.py\", line 432, in _run_callback\n callback(*args, **kwargs)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tornado/stack_context.py\", line 300, in null_wrapper\n return fn(*args, **kwargs)\n File \"/opt/miniconda3/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 283, in dispatcher\n return self.dispatch_shell(stream, msg)\n File \"/opt/miniconda3/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 233, in dispatch_shell\n handler(stream, idents, msg)\n File \"/opt/miniconda3/lib/python3.6/site-packages/ipykernel/kernelbase.py\", line 399, in execute_request\n user_expressions, allow_stdin)\n File \"/opt/miniconda3/lib/python3.6/site-packages/ipykernel/ipkernel.py\", line 208, in do_execute\n res = shell.run_cell(code, store_history=store_history, silent=silent)\n File \"/opt/miniconda3/lib/python3.6/site-packages/ipykernel/zmqshell.py\", line 537, in run_cell\n return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n File \"/opt/miniconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2662, in run_cell\n raw_cell, store_history, silent, shell_futures)\n File \"/opt/miniconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2785, in _run_cell\n interactivity=interactivity, compiler=compiler, result=result)\n File \"/opt/miniconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2901, in run_ast_nodes\n if self.run_code(code, result):\n File \"/opt/miniconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py\", line 2961, in run_code\n exec(code_obj, self.user_global_ns, self.user_ns)\n File \"<ipython-input-155-4a1a14f5b4fd>\", line 2, in <module>\n epochs=50, verbose=1, validation_split=0.25, batch_size=16)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py\", line 1363, in fit\n validation_steps=validation_steps)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/engine/training_arrays.py\", line 91, in fit_loop\n model._make_train_function()\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/engine/training.py\", line 598, in _make_train_function\n params=self._collected_trainable_weights, loss=self.total_loss)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/optimizers.py\", line 471, in get_updates\n ms = [K.zeros(K.int_shape(p), dtype=K.dtype(p)) for p in params]\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/optimizers.py\", line 471, in <listcomp>\n ms = [K.zeros(K.int_shape(p), dtype=K.dtype(p)) for p in params]\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/keras/backend.py\", line 970, in zeros\n v = array_ops.zeros(shape=shape, dtype=tf_dtype, name=name)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/ops/array_ops.py\", line 1551, in zeros\n output = fill(shape, constant(zero, dtype=dtype), name=name)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/ops/gen_array_ops.py\", line 2794, in fill\n \"Fill\", dims=dims, value=value, name=name)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py\", line 787, in _apply_op_helper\n op_def=op_def)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py\", line 454, in new_func\n return func(*args, **kwargs)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 3155, in create_op\n op_def=op_def)\n File \"/opt/miniconda3/lib/python3.6/site-packages/tensorflow/python/framework/ops.py\", line 1717, in __init__\n self._traceback = tf_stack.extract_stack()\n\nResourceExhaustedError (see above for traceback): OOM when allocating tensor of shape [167400,3000] and type float\n\t [[Node: training_3/Adam/zeros_16 = Const[dtype=DT_FLOAT, value=Tensor<type: float shape: [167400,3000] values: [0 0 0]...>, _device=\"/job:localhost/replica:0/task:0/device:GPU:0\"]()]]\n"
]
}
],
"source": [
"history = model.fit(train_features, train_labels, \n",
" epochs=50, verbose=1, validation_split=0.25, batch_size=16)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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Cb/H2AbMAL5asFKJiBxlqqqqAGhqauLiiy8edJ2zzjqLNWvWHHQ/1157LR0dHf3PR9Pl0mMFRhQSNwITzOwCoMvdNYYhInKA6dOnc+uttx729gcGxmi6XHrcS4N8AHgUeD/wAeARMxs8QkVExoDPfOYz+90P44tf/CJf+tKXOOecc1i6dCknnXQSt99++6u227x5MwsXLgSgs7OTFStWsGjRIi655JL9riX18Y9/nIaGBhYsWMDVV18NhAsaNjU1cfbZZ3P22WcD4XLpO3fuBODrX/86CxcuZOHChVx77bX97zd//nw++tGPsmDBAs4999yCXbMq7hjGF4BT3b0ZwMzqgXuAw49REZG47vwsbHtyePd5zElw3leGfHnFihV88pOf5C//8i8BuOWWW/jVr37F3/zN31BTU8POnTs5/fTTueiii4a8/el3v/tdKioqWL9+PevXr2fp0qX9r11zzTXU1taSzWY555xzWL9+PZ/4xCf4+te/zr333svkyZP329fatWu5/vrreeSRR3B3TjvtNN761rcyadKkEbuMetwxjERfWERaDmFbEZGjzpIlS2hubqapqYknnniCSZMmMW3aND7/+c+zaNEi3v72t/Pyyy+zffv2Ifdx//339x+4Fy1axKJFi/pfu+WWW1i6dClLlizhqaee4umnnz5oeR544AHe8573UFlZSVVVFe9973v5/e9/D4zcZdTjtjB+ZWa/Bm6Knl8C3FGQEomIHOggLYFCuvjii7n11lvZtm0bK1as4MYbb2THjh2sXbuWdDrNnDlzBr2seb7BWh9//OMf+drXvsZjjz3GpEmTuOKKK15zP+GXDYMbqcuoxx30/jRwHbAIOBm4zt0/U5ASiYiMEitWrODmm2/m1ltv5eKLL2bPnj1MmTKFdDrNvffey5YtWw66/ZlnnsmNN94IwIYNG1i/fj0Ae/fupbKykgkTJrB9+/b9LmQ41GXVzzzzTH7+85/T0dFBe3s7q1ev5i1vecsw1va1xb6BkrvfBtxWwLKIiIwqCxYsYN++fcyYMYNp06Zx6aWXcuGFF9LQ0MDixYt5wxvecNDtP/7xj3PllVeyaNEiFi9ezLJlywA4+eSTWbJkCQsWLGDevHmcccYZ/dusXLmS8847j2nTpnHvvff2L1+6dClXXHFF/z4+8pGPsGTJkhG9i58drJljZvuAwVYw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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"plt.figure()\n",
"plt.plot(history.history['loss'])\n",
"plt.plot(history.history['val_loss'])\n",
"plt.title('model loss')\n",
"plt.ylabel('loss')\n",
"plt.xlabel('epoch')\n",
"plt.legend(['train', 'validation'])\n",
"plt.show()\n"
]
},
{
"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.6.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment