为什么我可以将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.
如何在变量或数组中使用张量值?
谢谢
答案 0 :(得分:2)
在TensorFlow中(与实际数学不同)
Tensor
并不是(仅)包装一些数字的东西。
它位于计算图中的符号值中,它可以碰巧保持常量,如您的情况,但也包含变量和占位符。因此,一般来说,convert
回到一个数字是没有意义的 - 变量和占位符在您定义它们时没有具体的值。
您需要做的是run
中的Session
张量:
sess = Session(Graph())
run(sess, tensor) # plus necessary initializers and placeholders
这将评估计算图,直到可以确定tensor
的值。看看basic examples;所有TensorFlow代码都是此方案的重复:定义图形,然后在会话中运行它,并为占位符和初始值提供实际数据。