如何评估变量?
How to evaluate a Variable?
我正在尝试获取张量的值。
# First Layer
encoder_layer1 = tflearn.fully_connected(x,41,activation='relu',bias=True)
layer1_weights = encoder_layer1.W
layer1_bias = encoder_layer1.b
打印出来的结果是:
The layer 1 weights are: <tf.Variable 'FullyConnected/W:0' shape=(41, 41) dtype=float32_ref>
甚至 eval() 似乎也不起作用。它抛出一个错误
tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value FullyConnected/W
[[Node: _send_FullyConnected/W_0 = _Send[T=DT_FLOAT, client_terminated=true, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/cpu:0", send_device_incarnation=-6055748491062458677, tensor_name="FullyConnected/W:0", _device="/job:localhost/replica:0/task:0/cpu:0"](FullyConnected/W)]]
上面提到的所有方法我都试过了,好像还是不行。
提前致谢
很快:
您不能在会话外评估任何张量变量,您必须在 session
,
内进行
为什么不能:
为了理解为什么我们不能这样做,首先我们现在应该知道tensorflow背后发生了什么,因为tensorflow中的每一个东西都是图的一个节点,当我们定义变量并为它们赋值时,实际上我们正在设计图形,并且在我们 运行 图形之前不会分配值。
如何运行图表:
session执行图,考虑我们在tensorflow中设计网络时的代码块,session之前的一切都像蓝图,在这tf.session as sess
行之后,就像建筑工地,所以你只能评估(eval()
) 会话中的张量。换句话说,图定义了操作,而操作只在会话内部执行。
希望这有用。有关更多信息,请阅读 this
我正在尝试获取张量的值。
# First Layer
encoder_layer1 = tflearn.fully_connected(x,41,activation='relu',bias=True)
layer1_weights = encoder_layer1.W
layer1_bias = encoder_layer1.b
打印出来的结果是:
The layer 1 weights are: <tf.Variable 'FullyConnected/W:0' shape=(41, 41) dtype=float32_ref>
甚至 eval() 似乎也不起作用。它抛出一个错误
tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value FullyConnected/W
[[Node: _send_FullyConnected/W_0 = _Send[T=DT_FLOAT, client_terminated=true, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/cpu:0", send_device_incarnation=-6055748491062458677, tensor_name="FullyConnected/W:0", _device="/job:localhost/replica:0/task:0/cpu:0"](FullyConnected/W)]]
上面提到的所有方法我都试过了,好像还是不行。
提前致谢
很快:
您不能在会话外评估任何张量变量,您必须在 session
,
为什么不能:
为了理解为什么我们不能这样做,首先我们现在应该知道tensorflow背后发生了什么,因为tensorflow中的每一个东西都是图的一个节点,当我们定义变量并为它们赋值时,实际上我们正在设计图形,并且在我们 运行 图形之前不会分配值。
如何运行图表:
session执行图,考虑我们在tensorflow中设计网络时的代码块,session之前的一切都像蓝图,在这tf.session as sess
行之后,就像建筑工地,所以你只能评估(eval()
) 会话中的张量。换句话说,图定义了操作,而操作只在会话内部执行。
希望这有用。有关更多信息,请阅读 this