tf.keras.backend.eval和tf.keras.backend.get_value之间的区别

时间:2019-09-06 09:38:17

标签: python tensorflow keras

在某种程度上,我需要获取keras / tensorflow中的Tensor值。因此,我在这里遇到了两种可能的解决方案:

  • tf.eval()
  • tf.get_value()

这次文档也没有让我失望:
对于eval

  

计算变量的值。

对于get_value

  

返回变量的值。

我认为我们在这里使用英语定义。

代码也不是很有帮助:
evalget_value

基本上,一个似乎在另一个点(!)呼叫另一个。

def eval(x):
  return get_value(to_dense(x))

另一个比较重:

def get_value(x):
  if not tensor_util.is_tensor(x):
    return x
  if context.executing_eagerly():
    return x.numpy()
  if not getattr(x, '_in_graph_mode', True):
    with context.eager_mode():
      return x.numpy()

  if ops.executing_eagerly_outside_functions():
    return function([], x)(x)

  return x.eval(session=get_session((x,)))

无论如何,有谁知道它们之间的区别以及何时使用它们中的任何一个?

0 个答案:

没有答案