Python 无法在jupyter笔记本中为keras kfold验证代码创建会话

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/

我用keras/tensorflow在jupyter笔记本上写了一个代码。当我在cpu上运行tensorflow的笔记本电脑上运行代码时,代码运行得很好,但当我在gpu上运行tensorflow的家用电脑上运行相同的代码时,我收到消息“创建会话失败”。如果可能,我希望继续使用gpu

我将包括我的代码和下面的错误以及终端的输出

代码(我排除了加载/操作数据的代码的其他部分):

Jupyter笔记本错误消息:

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))