Last active
August 17, 2018 15:27
-
-
Save stsievert/4f593614450a143bf1b342e1fdeadce9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'1.22.0+64.ge5792a34.dirty'" | |
] | |
}, | |
"execution_count": 1, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"from distributed import Client\n", | |
"from distributed.protocol import register_generic\n", | |
"import distributed\n", | |
"client = Client()\n", | |
"distributed.__version__" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"Using TensorFlow backend.\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"'2.2.0'" | |
] | |
}, | |
"execution_count": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"import keras\n", | |
"keras.__version__" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"'0.5.3'" | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"import cloudpickle\n", | |
"cloudpickle.__version__" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"def setup(return_x_y=False):\n", | |
" from keras.datasets import mnist\n", | |
" from keras.models import Sequential\n", | |
" from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D\n", | |
" from keras import backend as K\n", | |
" import keras\n", | |
" img_rows, img_cols = 28, 28\n", | |
" (x_train, y_train), (x_test, y_test) = mnist.load_data()\n", | |
"\n", | |
" x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1)\n", | |
" x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1)\n", | |
" input_shape = (img_rows, img_cols, 1)\n", | |
"\n", | |
" x_train = x_train.astype('float32') / 255\n", | |
" x_test = x_test.astype('float32') / 255\n", | |
" y_train = keras.utils.to_categorical(y_train, 10)\n", | |
" y_test = keras.utils.to_categorical(y_test, 10)\n", | |
" if return_x_y:\n", | |
" return x_train, y_train\n", | |
"\n", | |
" model = Sequential()\n", | |
" model.add(Conv2D(32, kernel_size=(3, 3),\n", | |
" activation='relu',\n", | |
" input_shape=input_shape))\n", | |
" model.add(Conv2D(64, (3, 3), activation='relu'))\n", | |
" model.add(MaxPooling2D(pool_size=(2, 2)))\n", | |
" model.add(Dropout(0.25))\n", | |
" model.add(Flatten())\n", | |
" model.add(Dense(128, activation='relu'))\n", | |
" model.add(Dropout(0.5))\n", | |
" model.add(Dense(10, activation='softmax'))\n", | |
" return model, x_train, y_train" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from distributed.protocol import serialize, deserialize\n", | |
"model, _, _ = setup()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[keras.engine.sequential.Sequential,\n", | |
" keras.engine.training.Model,\n", | |
" keras.engine.network.Network,\n", | |
" keras.engine.base_layer.Layer,\n", | |
" object]" | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"type(model).mro()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"header, frames = serialize(model)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"ename": "TypeError", | |
"evalue": "Could not serialize object of type Sequential\nTraceback (most recent call last):\n File \"/Users/ssievert/Developer/mrocklin/distributed/distributed/protocol/pickle.py\", line 38, in dumps\n result = pickle.dumps(x, protocol=pickle.HIGHEST_PROTOCOL)\nTypeError: can't pickle _thread.RLock objects\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/Users/ssievert/Developer/mrocklin/distributed/distributed/protocol/serialize.py\", line 133, in serialize\n header, frames = dumps(x, context=context) if wants_context else dumps(x)\n File \"/Users/ssievert/Developer/mrocklin/distributed/distributed/protocol/serialize.py\", line 53, in pickle_dumps\n return {'serializer': 'pickle'}, [pickle.dumps(x)]\n File \"/Users/ssievert/Developer/mrocklin/distributed/distributed/protocol/pickle.py\", line 51, in dumps\n return cloudpickle.dumps(x, protocol=pickle.HIGHEST_PROTOCOL)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/site-packages/cloudpickle/cloudpickle.py\", line 895, in dumps\n cp.dump(obj)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/site-packages/cloudpickle/cloudpickle.py\", line 268, in dump\n return Pickler.dump(self, obj)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 409, in dump\n self.save(obj)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 521, in save\n self.save_reduce(obj=obj, *rv)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 634, in save_reduce\n save(state)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 821, in save_dict\n self._batch_setitems(obj.items())\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 847, in _batch_setitems\n save(v)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 781, in save_list\n self._batch_appends(obj)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 805, in _batch_appends\n save(x)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 521, in save\n self.save_reduce(obj=obj, *rv)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 634, in save_reduce\n save(state)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 821, in save_dict\n self._batch_setitems(obj.items())\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 847, in _batch_setitems\n save(v)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 781, in save_list\n self._batch_appends(obj)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 808, in _batch_appends\n save(tmp[0])\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 521, in save\n self.save_reduce(obj=obj, *rv)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 634, in save_reduce\n save(state)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 821, in save_dict\n self._batch_setitems(obj.items())\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 847, in _batch_setitems\n save(v)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 781, in save_list\n self._batch_appends(obj)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 808, in _batch_appends\n save(tmp[0])\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 521, in save\n self.save_reduce(obj=obj, *rv)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 634, in save_reduce\n save(state)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 821, in save_dict\n self._batch_setitems(obj.items())\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 847, in _batch_setitems\n save(v)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 521, in save\n self.save_reduce(obj=obj, *rv)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 634, in save_reduce\n save(state)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 821, in save_dict\n self._batch_setitems(obj.items())\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 847, in _batch_setitems\n save(v)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 521, in save\n self.save_reduce(obj=obj, *rv)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 634, in save_reduce\n save(state)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 821, in save_dict\n self._batch_setitems(obj.items())\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 847, in _batch_setitems\n save(v)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 496, in save\n rv = reduce(self.proto)\nTypeError: can't pickle _thread.RLock objects\n", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m<ipython-input-9-67db29f85d6b>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmodel2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdeserialize\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mheader\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mframes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |
"\u001b[0;32m/Users/ssievert/Developer/mrocklin/distributed/distributed/protocol/serialize.py\u001b[0m in \u001b[0;36mdeserialize\u001b[0;34m(header, frames, deserializers)\u001b[0m\n\u001b[1;32m 171\u001b[0m \"data with %s\" % (name, str(list(deserializers))))\n\u001b[1;32m 172\u001b[0m \u001b[0mdumps\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mloads\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwants_context\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfamilies\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 173\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mloads\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mheader\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mframes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 174\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 175\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;32m/Users/ssievert/Developer/mrocklin/distributed/distributed/protocol/serialize.py\u001b[0m in \u001b[0;36mserialization_error_loads\u001b[0;34m(header, frames)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mserialization_error_loads\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mheader\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mframes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[0mmsg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'\\n'\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mframe\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdecode\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'utf8'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mframe\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mframes\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 70\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 71\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 72\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;31mTypeError\u001b[0m: Could not serialize object of type Sequential\nTraceback (most recent call last):\n File \"/Users/ssievert/Developer/mrocklin/distributed/distributed/protocol/pickle.py\", line 38, in dumps\n result = pickle.dumps(x, protocol=pickle.HIGHEST_PROTOCOL)\nTypeError: can't pickle _thread.RLock objects\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/Users/ssievert/Developer/mrocklin/distributed/distributed/protocol/serialize.py\", line 133, in serialize\n header, frames = dumps(x, context=context) if wants_context else dumps(x)\n File \"/Users/ssievert/Developer/mrocklin/distributed/distributed/protocol/serialize.py\", line 53, in pickle_dumps\n return {'serializer': 'pickle'}, [pickle.dumps(x)]\n File \"/Users/ssievert/Developer/mrocklin/distributed/distributed/protocol/pickle.py\", line 51, in dumps\n return cloudpickle.dumps(x, protocol=pickle.HIGHEST_PROTOCOL)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/site-packages/cloudpickle/cloudpickle.py\", line 895, in dumps\n cp.dump(obj)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/site-packages/cloudpickle/cloudpickle.py\", line 268, in dump\n return Pickler.dump(self, obj)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 409, in dump\n self.save(obj)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 521, in save\n self.save_reduce(obj=obj, *rv)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 634, in save_reduce\n save(state)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 821, in save_dict\n self._batch_setitems(obj.items())\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 847, in _batch_setitems\n save(v)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 781, in save_list\n self._batch_appends(obj)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 805, in _batch_appends\n save(x)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 521, in save\n self.save_reduce(obj=obj, *rv)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 634, in save_reduce\n save(state)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 821, in save_dict\n self._batch_setitems(obj.items())\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 847, in _batch_setitems\n save(v)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 781, in save_list\n self._batch_appends(obj)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 808, in _batch_appends\n save(tmp[0])\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 521, in save\n self.save_reduce(obj=obj, *rv)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 634, in save_reduce\n save(state)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 821, in save_dict\n self._batch_setitems(obj.items())\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 847, in _batch_setitems\n save(v)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 781, in save_list\n self._batch_appends(obj)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 808, in _batch_appends\n save(tmp[0])\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 521, in save\n self.save_reduce(obj=obj, *rv)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 634, in save_reduce\n save(state)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 821, in save_dict\n self._batch_setitems(obj.items())\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 847, in _batch_setitems\n save(v)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 521, in save\n self.save_reduce(obj=obj, *rv)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 634, in save_reduce\n save(state)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 821, in save_dict\n self._batch_setitems(obj.items())\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 847, in _batch_setitems\n save(v)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 521, in save\n self.save_reduce(obj=obj, *rv)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 634, in save_reduce\n save(state)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 476, in save\n f(self, obj) # Call unbound method with explicit self\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 821, in save_dict\n self._batch_setitems(obj.items())\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 847, in _batch_setitems\n save(v)\n File \"/Users/ssievert/anaconda3/envs/dask-master/lib/python3.6/pickle.py\", line 496, in save\n rv = reduce(self.proto)\nTypeError: can't pickle _thread.RLock objects\n" | |
] | |
} | |
], | |
"source": [ | |
"model2 = deserialize(header, frames)" | |
] | |
}, | |
{ | |
"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.5" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment