【问题标题】:Why I cannot run a tensor and got error "the variable was uninitialized"为什么我无法运行张量并收到错误“变量未初始化”
【发布时间】:2020-11-09 15:29:58
【问题描述】:

我使用的是 tensorflow 1.15.0。

我正在尝试使用 sess.run() 获取 keras 层输出值。而且我确定我已经指定了图层输入形状,并且可以看到具有正确形状的输出张量。但是当我尝试获取张量值时,出现了错误。

代码如下:

import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers

sess = tf.Session()
layer = layers.Dense(3)
x = tf.ones((1, 4))
y = layer(x)
layer.weights # I want to get weights value, print it first

结果如预期:

[,
]

但是当我试图获取张量值时:

sess.run(layer.weights[0])

弹出很长的错误信息:(以下是核心信息)

FailedPreconditionError:从容器读取资源变量密集/内核时出错:本地主机。这可能意味着该变量未初始化。未找到:容器 localhost 不存在。 (找不到资源:localhost/dense/kernel)

有人可以帮我解决这个问题吗?谢谢。

【问题讨论】:

    标签: python tensorflow keras initialization tensor


    【解决方案1】:

    您可能需要在使用变量之前(在密集层中)初始化变量,例如使用tf.global_variables_initializer。在声明变量之后但在使用它们之前尝试添加以下行:

    sess.run(tf.global_variables_initializer())
    

    您也可以调用tf.variables_initializer 来初始化列表中的变量。

    【讨论】:

      猜你喜欢
      • 2020-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      • 2019-12-28
      • 2017-12-10
      • 1970-01-01
      相关资源
      最近更新 更多