ValueError:操作u'tpu_140462710602256/VarIsInitializedOp'已标记为不可提取 [英] ValueError: Operation u'tpu_140462710602256/VarIsInitializedOp' has been marked as not fetchable

查看:396
本文介绍了ValueError:操作u'tpu_140462710602256/VarIsInitializedOp'已标记为不可提取的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

代码在GPU和CPU上正常工作,但是当我使用keras_to_tpu_model函数使模型能够在TPU上运行时,发生了错误.

The code works fine on GPU and CPU.But when I use keras_to_tpu_model function to make the model able to run on TPU, the error occurred.

这是colab的完整输出: https://colab.research.google.com/gist/WangHexie/2252beb26f16354cb6e9ba2639970e5b/tpu-error.ipynb
将运行类型更改为TPU,我认为可以重现.

This is the full output on colab:https://colab.research.google.com/gist/WangHexie/2252beb26f16354cb6e9ba2639970e5b/tpu-error.ipynb
Change runtype to TPU,I think this can be reproduced.

github上的代码: https://github.com /WangHexie/DHNE/blob/master/src/hypergraph_embedding.py#L60

Code on github:https://github.com/WangHexie/DHNE/blob/master/src/hypergraph_embedding.py#L60

您可以通过更改为gpu分支来在GPU上测试代码.

You can test the code on GPU by changing to the gpu branch.

追踪

    Traceback (most recent call last):
  File "src/hypergraph_embedding.py", line 158, in <module>
    h.train(dataset)
  File "src/hypergraph_embedding.py", line 75, in train
    epochs=self.options.epochs_to_train, verbose=1)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/keras/engine/training.py", line 2177, in fit_generator
    initial_epoch=initial_epoch)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/keras/engine/training_generator.py", line 176, in fit_generator
    x, y, sample_weight=sample_weight, class_weight=class_weight)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/keras/engine/training.py", line 1940, in train_on_batch
    outputs = self.train_function(ins)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/tpu/python/tpu/keras_support.py", line 1238, in __call__
    infeed_manager)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/tpu/python/tpu/keras_support.py", line 1143, in _tpu_model_ops_for_input_specs
    infeed_manager)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/tpu/python/tpu/keras_support.py", line 1053, in _specialize_model
    _model_fn, inputs=[[]] * self._tpu_assignment.num_towers)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/tpu/python/tpu/tpu.py", line 687, in split_compile_and_replicate
    outputs = computation(*computation_inputs)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/tpu/python/tpu/keras_support.py", line 959, in _model_fn
    self.model.cpu_optimizer)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/tpu/python/tpu/keras_support.py", line 378, in _clone_optimizer
    config = optimizer.get_config()
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/keras/optimizers.py", line 275, in get_config
    'lr': float(K.get_value(self.lr)),
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/keras/backend.py", line 2709, in get_value
    return x.eval(session=get_session())
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/keras/backend.py", line 469, in get_session
    _initialize_variables(session)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/keras/backend.py", line 731, in _initialize_variables
    [variables_module.is_variable_initialized(v) for v in candidate_vars])
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 929, in run
    run_metadata_ptr)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1137, in _run
    self._graph, fetches, feed_dict_tensor, feed_handles=feed_handles)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 484, in __init__
    self._assert_fetchable(graph, fetch.op)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 497, in _assert_fetchable
    'Operation %r has been marked as not fetchable.' % op.name)
ValueError: Operation u'tpu_140276544043536/VarIsInitializedOp' has been marked as not fetchable.

推荐答案

我遇到了同样的问题,使我困惑了两天.我发现一个解决方案是仅切换到使用tf.train.RMSPropOptimizer而不是使用tensorflow.keras.optimizers中的RMSProp.

I have a same issue which confuses me two days. I find a solution is that just switch to using tf.train.RMSPropOptimizer instead of using RMSProp from tensorflow.keras.optimizers.

这篇关于ValueError:操作u'tpu_140462710602256/VarIsInitializedOp'已标记为不可提取的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆