Python 无法在jupyter笔记本中为keras kfold验证代码创建会话
我用keras/tensorflow在jupyter笔记本上写了一个代码。当我在cpu上运行tensorflow的笔记本电脑上运行代码时,代码运行得很好,但当我在gpu上运行tensorflow的家用电脑上运行相同的代码时,我收到消息“创建会话失败”。如果可能,我希望继续使用gpu 我将包括我的代码和下面的错误以及终端的输出 代码(我排除了加载/操作数据的代码的其他部分): Jupyter笔记本错误消息:Python 无法在jupyter笔记本中为keras kfold验证代码创建会话,python,tensorflow,keras,jupyter-notebook,Python,Tensorflow,Keras,Jupyter Notebook,我用keras/tensorflow在jupyter笔记本上写了一个代码。当我在cpu上运行tensorflow的笔记本电脑上运行代码时,代码运行得很好,但当我在gpu上运行tensorflow的家用电脑上运行相同的代码时,我收到消息“创建会话失败”。如果可能,我希望继续使用gpu 我将包括我的代码和下面的错误以及终端的输出 代码(我排除了加载/操作数据的代码的其他部分): Jupyter笔记本错误消息: Running Fold 1 / 10 /home/mikedoho/anaconda3/
Running Fold 1 / 10
/home/mikedoho/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:19: UserWarning: Update your `Dense` call to the Keras 2 API: `Dense(20, input_dim=46, kernel_initializer="he_uniform", bias_initializer="he_uniform", kernel_regularizer=<keras.reg...)`
/home/mikedoho/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:34: UserWarning: Update your `Dense` call to the Keras 2 API: `Dense(20, kernel_initializer="he_uniform", bias_initializer="he_uniform", kernel_regularizer=<keras.reg...)`
/home/mikedoho/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:34: UserWarning: Update your `Dense` call to the Keras 2 API: `Dense(4, kernel_initializer="he_uniform", bias_initializer="he_uniform", kernel_regularizer=<keras.reg...)`
---------------------------------------------------------------------------
InternalError Traceback (most recent call last)
<ipython-input-24-db5ca8962dc5> in <module>()
91 batch_norm=True, dropout=True)
92
---> 93 history = train_and_evaluate_model(model['model'],x_train_2, y_train_2, x_val_2, y_val_2)
94
95 history_dict = history.history
<ipython-input-24-db5ca8962dc5> in train_and_evaluate_model(model, x_train, y_train, x_val, y_val)
64 validation_data=[x_val, y_val],
65 batch_size=params['batch_size'],
---> 66 epochs=params['epochs'],verbose=0)
67 return history
68
~/anaconda3/lib/python3.6/site-packages/keras/engine/training.py in fit(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)
1040 initial_epoch=initial_epoch,
1041 steps_per_epoch=steps_per_epoch,
-> 1042 validation_steps=validation_steps)
1043
1044 def evaluate(self, x=None, y=None,
~/anaconda3/lib/python3.6/site-packages/keras/engine/training_arrays.py in fit_loop(model, f, ins, out_labels, batch_size, epochs, verbose, callbacks, val_f, val_ins, shuffle, callback_metrics, initial_epoch, steps_per_epoch, validation_steps)
197 ins_batch[i] = ins_batch[i].toarray()
198
--> 199 outs = f(ins_batch)
200 if not isinstance(outs, list):
201 outs = [outs]
~/anaconda3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py in __call__(self, inputs)
2651
2652 def __call__(self, inputs):
-> 2653 if hasattr(get_session(), '_make_callable_from_options'):
2654 if py_any(is_sparse(x) for x in self.inputs):
2655 if py_any(is_tensor(x) for x in inputs):
~/anaconda3/lib/python3.6/site-packages/keras/backend/tensorflow_backend.py in get_session()
181 config = tf.ConfigProto(intra_op_parallelism_threads=num_thread,
182 allow_soft_placement=True)
--> 183 _SESSION = tf.Session(config=config)
184 session = _SESSION
185 if not _MANUAL_VAR_INIT:
~/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py in __init__(self, target, graph, config)
1561
1562 """
-> 1563 super(Session, self).__init__(target, graph, config=config)
1564 # NOTE(mrry): Create these on first `__enter__` to avoid a reference cycle.
1565 self._default_graph_context_manager = None
~/anaconda3/lib/python3.6/site-packages/tensorflow/python/client/session.py in __init__(self, target, graph, config)
631 if self._created_with_new_api:
632 # pylint: disable=protected-access
--> 633 self._session = tf_session.TF_NewSession(self._graph._c_graph, opts)
634 # pylint: enable=protected-access
635 else:
InternalError: Failed to create session.
放在我的代码开头:
from keras import backend as K
cfg = K.tf.ConfigProto()
cfg.gpu_options.allow_growth = True
K.set_session(K.tf.Session(config=cfg))
学分:
Adapting to protocol v5.1 for kernel effcd29a-2f4c-4e0e-8d39-f5993f09f90e
2018-08-15 18:48:40.171924: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2018-08-15 18:48:40.270262: E tensorflow/core/common_runtime/direct_session.cc:158] Internal: failed initializing StreamExecutor for CUDA device ordinal 0: Internal: failed call to cuDevicePrimaryCtxRetain: CUDA_ERROR_OUT_OF_MEMORY; total memory reported: 11718230016
from keras import backend as K
cfg = K.tf.ConfigProto()
cfg.gpu_options.allow_growth = True
K.set_session(K.tf.Session(config=cfg))