ValueError:Fetch参数<tf.operation'init_8'=“”type =“NoOp”>不能解释为Tensor。

时间:2017-09-29 22:52:16

标签: keras

我正在使用Keras库,我只是尝试初始化VGG16模型,并且我收到的错误是所有输入都不是此图的元素。我正在使用Tensorflow后端。

输入

from keras.applications.vgg16 import VGG16

model = VGG16()

输出:

  

RUNFILE( 'C:/Users/joshu/Documents/Code/Testing/vgg_tester.py',   wdir ='C:/ Users / joshu / Documents / Code / Testing')Traceback(最近的   最后打电话):

     

文件“”,第1行,in       runfile('C:/Users/joshu/Documents/Code/Testing/vgg_tester.py',wdir ='C:/ Users / joshu / Documents / Code / Testing')

     

文件   “C:\用户\上州\ Anaconda3 \ LIB \站点包\ Spyder的\ utils的\网站\ sitecustomize.py”   第880行,在runfile中       execfile(filename,namespace)

     

文件   “C:\用户\上州\ Anaconda3 \ LIB \站点包\ Spyder的\ utils的\网站\ sitecustomize.py”   第102行,在execfile中       exec(compile(f.read(),filename,'e​​xec'),namespace)

     

文件“C:/Users/joshu/Documents/Code/Testing/vgg_tester.py”,第11行,   在       model = VGG16()

     

文件   “C:\用户\上州\ Anaconda3 \ LIB \站点包\ keras \应用程序\ vgg16.py”   第163行,VGG16       model.load_weights(weights_path)

     

文件   “C:\用户\上州\ Anaconda3 \ LIB \站点包\ keras \发动机\ topology.py”   第2708行,在load_weights中       self.load_weights_from_hdf5_group(F)

     

文件   “C:\用户\上州\ Anaconda3 \ LIB \站点包\ keras \发动机\ topology.py”   第2794行,在load_weights_from_hdf5_group中       K.batch_set_value(weight_value_tuples)

     

文件   “C:\用户\上州\ Anaconda3 \ LIB \站点包\ keras \后端\ tensorflow_backend.py”   第1860行,在batch_set_value中       get_session()。run(assign_ops,feed_dict = feed_dict)

     

文件   “C:\用户\上州\ Anaconda3 \ LIB \站点包\ keras \后端\ tensorflow_backend.py”   第121行,在get_session中       _initialize_variables()

     

文件   “C:\用户\上州\ Anaconda3 \ LIB \站点包\ keras \后端\ tensorflow_backend.py”   第273行,在_initialize_variables中       sess.run(tf.variables_initializer(uninitialized_variables))

     

文件   “C:\用户\上州\ Anaconda3 \ LIB \站点包\ tensorflow \ python的\客户端\ session.py”   第778行,在运行中       run_metadata_ptr)

     

文件   “C:\用户\上州\ Anaconda3 \ LIB \站点包\ tensorflow \ python的\客户端\ session.py”   第969行,在_run       fetch_handler = _FetchHandler(self._graph,fetches,feed_dict_string)

     

文件   “C:\用户\上州\ Anaconda3 \ LIB \站点包\ tensorflow \ python的\客户端\ session.py”   第408行,在 init 中       self._fetch_mapper = _FetchMapper.for_fetch(fetches)

     

文件   “C:\用户\上州\ Anaconda3 \ LIB \站点包\ tensorflow \ python的\客户端\ session.py”   第238行,在for_fetch中       return _ElementFetchMapper(fetches,contraction_fn)

     

文件   “C:\用户\上州\ Anaconda3 \ LIB \站点包\ tensorflow \ python的\客户端\ session.py”   第274行,在 init 中       “张量。 (%s)'%(fetch,str(e)))

     

ValueError:Fetch参数不能   被解释为张量。 (操作名称:“init_11”op:“NoOp”   输入:“^ block1_conv1_W_8 / Assign”输入:“^ block1_conv1_b_8 / Assign”   输入:“^ block1_conv2_W_8 / Assign”输入:“^ block1_conv2_b_8 / Assign”   输入:“^ block2_conv1_W_8 / Assign”输入:“^ block2_conv1_b_8 / Assign”   输入:“^ block2_conv2_W_8 / Assign”输入:“^ block2_conv2_b_8 / Assign”   输入:“^ block3_conv1_W_8 / Assign”输入:“^ block3_conv1_b_8 / Assign”   输入:“^ block3_conv2_W_8 / Assign”输入:“^ block3_conv2_b_8 / Assign”   输入:“^ block3_conv3_W_8 / Assign”输入:“^ block3_conv3_b_8 / Assign”   输入:“^ block4_conv1_W_8 / Assign”输入:“^ block4_conv1_b_8 / Assign”   输入:“^ block4_conv2_W_8 / Assign”输入:“^ block4_conv2_b_8 / Assign”   输入:“^ block4_conv3_W_8 / Assign”输入:“^ block4_conv3_b_8 / Assign”   输入:“^ block5_conv1_W_8 / Assign”输入:“^ block5_conv1_b_8 / Assign”   输入:“^ block5_conv2_W_8 / Assign”输入:“^ block5_conv2_b_8 / Assign”   输入:“^ block5_conv3_W_8 / Assign”输入:“^ block5_conv3_b_8 / Assign”   输入:“^ fc1_W_4 / Assign”输入:“^ fc1_b_4 / Assign”输入:   “^ fc2_W_4 / Assign”输入:“^ fc2_b_4 / Assign”输入:   “^ predictions_W_4 / Assign”输入:“^ predictions_b_4 / Assign”输入:   “^ cond_153 / switch_f”不是此图的元素。)

1 个答案:

答案 0 :(得分:0)

我拉开了VGG16代码和提到

的文档
  

“image_data_format”:“channels_last”

包含在keras配置JSON文件中。添加它似乎可以解决问题。

不确定它与之间的区别:

  

“image_dim_ordering”:“tf”

但两者似乎都有效。