当前位置: 首页 > 面试题库 >

如何在TensorFlow图中添加条件?

景子安
2023-03-14
问题内容

假设我有以下代码:

x = tf.placeholder("float32", shape=[None, ins_size**2*3], name = "x_input")
condition = tf.placeholder("int32", shape=[1, 1], name = "condition")
W = tf.Variable(tf.zeros([ins_size**2*3,label_option]), name = "weights")
b = tf.Variable(tf.zeros([label_option]), name = "bias")

if condition > 0:
    y = tf.nn.softmax(tf.matmul(x, W) + b)
else:
    y = tf.nn.softmax(tf.matmul(x, W) - b)

if语句在计算中是否有效(我认为不是)?如果没有,如何if在TensorFlow计算图中添加一条语句?


问题答案:

您是正确的,该if语句在这里不起作用,因为该条件是在图构造时评估的,而大概您希望该条件取决于运行时馈入占位符的值。(实际上,它将始终采用第一个分支,因为`condition

0计算结果为aTensor`,这在Python中是“真实的”。)

为了支持条件控制流,TensorFlow提供了tf.cond()运算符,该运算符根据布尔条件评估两个分支之一。为了向您展示如何使用它,我将重写您的程序,为简单起见,这condition是一个标tf.int32量值:

x = tf.placeholder(tf.float32, shape=[None, ins_size**2*3], name="x_input")
condition = tf.placeholder(tf.int32, shape=[], name="condition")
W = tf.Variable(tf.zeros([ins_size**2 * 3, label_option]), name="weights")
b = tf.Variable(tf.zeros([label_option]), name="bias")

y = tf.cond(condition > 0, lambda: tf.matmul(x, W) + b, lambda: tf.matmul(x, W) - b)


 类似资料:
  • 问题内容: 我在使用TensorFlow实现的许多可用神经网络代码中发现,正则化项通常是通过在损耗值上手动添加一个附加项来实现的。 我的问题是: 是否有比手动进行更优雅或推荐的正规化方法? 我也发现有一个争论。应该如何使用?根据我的观察,如果我们向其传递正则化器(例如,将计算表示正则化项的张量并将其添加到名为的图集合中,该集合是否会被TensorFlow自动使用(例如,优化器在训练时使用)?期望我

  • 最近在glassdoor-like网站上遇到了一个面试问题,我找不到一个优化的解决方案来解决这个问题: 这和积水问题完全不同。请通读这些例子。 给定一个输入数组,每个元素表示塔的高度,将浇水量,索引号表示浇水位置。每个塔的宽度为1。浇水后打印图表。 备注: > 浇注位置永远不会处于峰值位置。无需考虑分水的情况。 (如果您给出了这种情况的解决方案,您可以假设如果在峰值位置倒入N水,N/2水向左,N/

  • 本文向大家介绍如何在JavaFX中向图像添加滚动条?,包括了如何在JavaFX中向图像添加滚动条?的使用技巧和注意事项,需要的朋友参考一下 滚动条包含附加到可滚动窗格的拇指,左右按钮。使用此功能,您可以上下滚动窗格(附加到窗格)。 在JavaFX中,javafx.scene.control.ScrollBar表示滚动条。您可以创建一个实例化此类的滚动条。通常,滚动条与其他控件关联,例如Scroll

  • 问题内容: 如果响应包含“已完成”或“正在处理,将需要一些时间来处理”,我希望在两种情况下都可以通过请求。 但是,如果我将这两个断言都包含在响应断言中,它将视为“和”。只有双方都满意,它才会通过。在这里,任何一项就足够了。请提出建议。 问题答案: 您将需要一个支持脚本的断言,即Beanshell断言 将Beanshell断言添加为请求的子项,该请求将返回“已完成”或“正在进行”消息 将以下代码放入

  • 我陷入了感觉应该相对容易的事情。我下面带来的代码是基于我正在进行的一个更大项目的示例。我认为没有理由发布所有细节,所以请按原样接受我带来的数据结构。 基本上,我正在创建一个条形图,我只是想知道如何在条形图上添加值标签(在条形图的中心,或者就在它的上面)。我一直在网上寻找示例,但是在我自己的代码上没有成功实现。我相信解决方法是用“文本”或“注释”,但我:a)不知道用哪一个(而且总的来说,还没想好什么

  • 问题内容: 在Bokeh指南中,可以创建各种条形图的示例。http://docs.bokeh.org/en/0.10.0/docs/user_guide/charts.html#id4 此代码将创建一个: 我的问题是是否可以向图表的每个单独的条形添加数据标签?我在网上搜索,但找不到明确的答案。 问题答案: 使用标签集 使用Labelset在每个单独的条形上方创建标签 在我的示例中,我将vbar与绘