2017-06-27 150 views
0

我得到一個錯誤,當我運行我的代碼,錯誤的是:Tensorflow:無法創建會話

tensorflow.python.framework.errors_impl.InternalError: Failed to create session.

這裏是我的代碼:

# -*- coding: utf-8 -*- 
import ... 
import ... 

checkpoint='/home/vrview/tensorflow/example/char/data/model/' 
MODEL_SAVE_PATH = "/home/vrview/tensorflow/example/char/data/model/" 

def getAllImages(folder): 
    assert os.path.exists(folder) 
    assert os.path.isdir(folder) 
    imageList = os.listdir(folder) 
    imageList = [os.path.join(folder,item) for item in imageList ] 
    num=len(imageList) 
    return imageList,num 

def get_labei(): 
    img_dir, num = getAllImages(r"/home/vrview/tensorflow/example/char/data/model/file/") 
    for i in range(num): 
     image = Image.open(img_dir[i]) 
     image = image.resize([56, 56]) 
     image = np.array(image) 
     image_array = image 

     with tf.Graph().as_default(): 
      image = tf.cast(image_array, tf.float32) 
      image_1 = tf.image.per_image_standardization(image) 
      image_2 = tf.reshape(image_1, [1, 56, 56, 3]) 

      logit = color_inference.inference(image_2) 
      y = tf.nn.softmax(logit) 
      x = tf.placeholder(tf.float32, shape=[56, 56, 3]) 

      saver = tf.train.Saver() 
      with tf.Session() as sess: 
       ckpt = tf.train.get_checkpoint_state(MODEL_SAVE_PATH) 
       if ckpt and ckpt.model_checkpoint_path: 
        global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1] 
        saver.restore(sess, ckpt.model_checkpoint_path) 
        print('Loading success, global_step is %s' % global_step) 
        prediction = sess.run(y) 
        max_index = np.argmax(prediction) 
       else: 
        print('No checkpoint file found') 

     path='/home/vrview/tensorflow/example/char/data/move_file/'+str(max_index) 
     isExists = os.path.exists(path) 
     if not isExists : 
      os.makedirs(path) 
     shutil.copyfile(img_dir[i], path) 

def main(argv=None): 
    get_labei() 

if __name__ == '__main__': 
    tf.app.run() 

這裏是我的錯誤:

Traceback (most recent call last): 
    File "/home/vrview/tensorflow/example/char/data/model/color_class_2.py", line 61, in <module> 
    tf.app.run() 
    File "/home/vrview/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/platform/app.py", line 44, in run 
    _sys.exit(main(_sys.argv[:1] + flags_passthrough)) 
    File "/home/vrview/tensorflow/example/char/data/model/color_class_2.py", line 58, in main 
    get_labei() 
    File "/home/vrview/tensorflow/example/char/data/model/color_class_2.py", line 40, in get_labei 
    with tf.Session() as sess: 
    File "/home/vrview/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 1187, in __init__ 
    super(Session, self).__init__(target, graph, config=config) 
    File "/home/vrview/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/client/session.py", line 552, in __init__ 
    self._session = tf_session.TF_NewDeprecatedSession(opts, status) 
    File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__ 
    self.gen.next() 
    File "/home/vrview/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/framework/errors_impl.py", line 469, in raise_exception_on_not_ok_status 
    pywrap_tensorflow.TF_GetCode(status)) 
tensorflow.python.framework.errors_impl.InternalError: Failed to create session. 

我總是得到這個錯誤,但我不知道是什麼原因造成的,以及如何解決它。謝謝。

+0

您沒有初始化圖形的變量。在'tf.Session()as sess'前加上這行'init_op = tf.global_variables_initializer()'。在'tf.Session()之後加'sess.run(init_op)'作爲sess:' – Nain

回答

0

可能不在GPU內存中?嘗試使用

export CUDA_VISIBLE_DEVICES='' 

另請提供您正在使用的平臺(操作系統,體系結構)的詳細信息。還包括您的TensorFlow版本。

你能夠從python控制檯創建一個簡單的會話。事情是這樣的:

import tensorflow as tf 
hello = tf.constant('hi,tensorflow') 
sess = tf.Session() 
+0

我重啓我的電腦並解決了這個問題。但我不知道爲什麼... –

+0

可能是內存問題。重新啓動將清除內存上的任何鎖並將其清除。 – JCooke

+0

使用導出CUDA_VISIBLE_DEVICES =''後,現在不使用GPU加速。另外,如果我在服務器上工作,我該如何處理它?我無法重新啓動服務器。 –

1

後執行

export CUDA_VISIBLE_DEVICES='' 

您tensorflow不得使用GPU。它可能只使用CPU開始訓練模型。

你可以找到更好的解決方案here。這不需要重新啓動,您可以將其應用於服務器。