install.packages('ggplot2')
在上面的代码段中,它打印张量描述 “成本= Tensor(“ logistic_loss_6:0”,dtype = float32)“ ,而不是成本值。
但是,如果我使用
# install.packages('ggplot2')
library(ggplot2)
p <- ggplot(df)
p <- p + geom_bar(aes(mid, perc), stat='identity')
p
然后输出成本。
我的问题是-当我运行sess.run(cost,feed ...)时,是否不评估和存储成本?
答案 0 :(得分:1)
关于Tensorflow的基本知识之一是它创建了一个包含所有操作的计算图。因此,实际上,变量def some_function(potentially_empty_df):
if len(potentially_empty_df) == 0:
return
else:
// Do other stuff
的内容是张量,它是图形的运算,这就是为什么在直接打印时得到所得到的结果的原因。为了使计算图实际计算某些东西,您必须在将输入馈入占位符(用作Tensorflow计算图的输入)的同时调用cost
,然后sess.run()
调用返回计算值。
调用sess.run()
不会修改图,它仅使用它来计算给定输入所需的张量值。因此,您的问题的答案是:对它进行评估,评估的值由sess.run()
返回,但它不存储在张量中。将张量视为指向图形的符号指针。张量只是表示图中计算流程中的一个节点,它从不包含评估值。然后在给定sess.run()
中的输入的情况下,使用sess.run(tensor, feed_dict)
运行由符号张量定义的计算。这是Tensorflow的核心概念,理解这一点非常重要。