TensorFlow,Julia - Tensors和Floats

时间:2018-05-22 10:16:17

标签: tensorflow julia

为什么我可以将Float转换为张量,如下所示:

tensor = convert(TensorFlow.Tensor{Float32}, 0.05)
<Tensor Cast_8:1 shape=() dtype=Float32>

但不是Tensor to Float。以下命令:

convert(Float32, tensor)

返回以下错误:

ERROR: MethodError: Cannot `convert` an object of type TensorFlow.Tensor{Float32} to an object of type Float32
This may have arisen from a call to the constructor Float32(...),
since type constructors fall back to convert methods.

如何在变量或数组中使用张量值?

谢谢

1 个答案:

答案 0 :(得分:2)

在TensorFlow中(与实际数学不同) Tensor并不是(仅)包装一些数字的东西。 它位于计算图中的符号值中,它可以碰巧保持常量,如您的情况,但也包含变量和占位符。因此,一般来说,convert回到一个数字是没有意义的 - 变量和占位符在您定义它们时没有具体的值。

您需要做的是run中的Session张量:

sess = Session(Graph())
run(sess, tensor)    # plus necessary initializers and placeholders

这将评估计算图,直到可以确定tensor的值。看看basic examples;所有TensorFlow代码都是此方案的重复:定义图形,然后在会话中运行它,并为占位符和初始值提供实际数据。