为什么我无法运行张量并收到错误“变量未初始化”

时间:2020-11-09 15:29:58

标签: python tensorflow keras initialization tensor

我正在使用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:从容器:本地主机读取资源变量密集/内核时出错。这可能意味着该变量未初始化。找不到:容器lo​​calhost不存在。 (找不到资源:localhost / dense / kernel)

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

1 个答案:

答案 0 :(得分:1)

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

sess.run(tf.global_variables_initializer())

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