- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 feed_dict value bool 传递给函数
def sum(a, b, flag = True, msg1= "Sum", msg2= "Multiply "):
if (flag is True):
print(msg1)
vtotal = tf.add(a,b)
else:
print(msg2)
vtotal = tf.multiply(a,b)
return vtotal
当我调用 sum(a,b) 函数时,使用默认值 flag = True 进行处理
但是当我将该函数调用为
sum(a, b, flag):
我从 feed_dict 中获取 flag 的值,例如
output = sess.run(total,feed_dict = {a: a_arr, b: b_arr, flag: True})
它不将值设为 True,而是执行函数的 else 部分
完整代码如下:请帮忙解释为什么会发生这种情况。
def initialize_placeholders():
a = tf.placeholder(tf.float32,[3,None],name="a")
b = tf.placeholder(tf.float32,[3,None],name ="b")
flag = tf.placeholder(tf.bool, name="flag")
return a, b, flag
def sum(a, b, flag = True, msg1= "Sum", msg2= "Multiply "):
if (flag is True):
print(msg1)
vtotal = tf.add(a,b)
else:
print(msg2)
vtotal = tf.multiply(a,b)
return vtotal
def model(a_arr,b_arr):
#print(a_arr)
#print(b_arr)
tf.reset_default_graph()
a, b ,flag= initialize_placeholders()
total = sum(a,b,flag)
init = tf.global_variables_initializer()
print(flag)
with tf.Session() as sess:
sess.run(init)
output = sess.run(total,feed_dict = {a: a_arr, b: b_arr, flag: True})
print(flag)
unv = sess.run(tf.report_uninitialized_variables())
sess.close()
return output, unv
a_arr = np.arange(6)
a_arr = a_arr.reshape(3,2)
b_arr = np.array([2,4,6,8,10,12])
b_arr = b_arr.reshape(3,2)
output , unv = model(a_arr,b_arr)
print(output)
print(unv)
最佳答案
您不能在常规条件 Python 语句中使用 TensorFlow 值(除非您使用类似 AutoGraph 的内容)。你可以用 tf.cond
做你想做的事像这样:
def sum(a, b, flag=True):
flag = tf.convert_to_tensor(flag)
return tf.cond(flag, lambda: tf.add(a, b), lambda: tf.multiply(a, b))
您还可以使其变得更复杂一点,以保存 tf.cond
当flag
的值预先固定时进行操作。例如,您可以有这样的内容:
def sum(a, b, flag = True, msg1= "Sum", msg2= "Multiply "):
true_fn = lambda: tf.add(a, b)
false_fn = lambda: tf.multiply(a, b)
if flag is True:
return true_fn()
elif flag is False:
return false_fn()
else: # Use TensorFlow conditional
flag = tf.convert_to_tensor(flag)
return tf.cond(flag, true_fn, false_fn)
我删除了 print
指令,因为它们不能直接在 TensorFlow 条件中使用,但您仍然可以拥有 tf.print
如果您想在执行图形时查看打印的消息,请执行以下操作。
关于python - 将 bool 从 feed_dict 传递给函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56994607/
我正在玩构建线性回归的 Tensorflow 示例,我的代码如下: import numpy as np import tensorflow as tf train_X = np.asarray([3
我有点困惑为什么我们要使用feed_dict?据我的 friend 说,当您使用 placeholder 时,通常会使用 feed_dict,这可能对生产不利。 我见过这样的代码,其中不涉及 feed
假设您有一个网络,目前已使用 feed_dict 将数据注入(inject)图表。每隔几个时期,我通过将任一数据集的批处理输入到我的图表来评估训练和测试损失。 现在,出于性能原因,我决定使用输入管道。
与 .from_tensor_slices 相比,为什么 feed_dict 使用更少的 GPU 内存?我认为在下面的行中,Tensorflow 会在迭代 GPU 中的数据之前将整个数据加载到 GPU
第一次遇到这样的问题。 错误是关于 feed_dict={tfkids: kids, tfkids_fit: kids_fit} 的,似乎需要 reshape kids_fit。 谁能帮我解决这个问题
我有一个模型,需要每 N 次迭代为权重(可训练变量)分配新的外部值。 我可以想到一些解决方案: 保存和恢复 不好,因为我需要序列化,通过文件系统调用等(即使我使用 tmpfs 之类的东西) 使用占位符
所以我是 Tensorflow 的新手,我试图准确了解何时使用 feed_dict 以及何时不需要。 但是,我对 feed_dict 的工作原理感到困惑。 例如:1 会与 2 和 3 相同吗? 1.
我一直在使用 feed_dict 来直接输入 placeholder在像 MNIST 这样的小问题中练习编码。 TensorFlow 还支持使用 queue 馈送数据和 queue runner ,它
我正在使用 Java 来提供通过 Python 学习的 Tensorflow 模型。该模型有两个输入。代码如下: def predict(float32InputShape: (Long, Lon
我正在运行一个简单的神经网络进行线性回归。然而,TensorFlow 提示我的 feed_dict 占位符不是图表的元素。然而,我的占位符和模型都在我的图表中定义,如下所示: import numpy
我正在研究 python 中的分类问题。事实上,我在 TensorFlow 方面还不是很好。所以我很久以来就有同样的问题,我不知道如何解决。我希望你能帮助我:) 这是我的数据: X:8000 张图片:
我刚开始用 python 学习 Tensorflow。当我从一个简单的 AddTwo 类开始时出现以下错误。错误信息是: Cannot interpret feed_dict key as Tenso
我有一个由多个子网络组成的网络(多个卷积网络和最后一个全连接 + 软最大层)。每个 ConvNet 提要具有特定区域和图像大小。因此,为了给我的网络提供数据,我为每个 convnet 输入编写图像占位
我正在尝试将一个简单的片段从 TensorFlow 1.x 转换为 TensorFlow 2: # ########## TensorFlow 1.x code: ########## import
我正在尝试将 feed_dict value bool 传递给函数 def sum(a, b, flag = True, msg1= "Sum", msg2= "Multiply "): if
现在我有一个模型配置为使用 feed_dict 获取输入。代码看起来像这样: # model.py class MyModel(object): def __init__(self, hyperp
我正在解决 TensorFlow 的示例问题(特别是使用占位符),并且不明白为什么我收到(看起来是)形状/类型错误,而我相当有信心这些错误是什么他们应该是。 我尝试过使用 X_batch 和 y_ba
下面是小的 Tensorflow 代码 # coding: utf-8 # In[27]: import tensorflow as tf # In[28]: # Model parameters W
我在 Tensorflow 中有一个 C++ 代码,如下所示,它涉及使用占位符的矩阵乘法: #include #include #include #include #include "tens
我想在 TensorFlow C++ 中构建和训练一个由两层组成的图,并将给定的矩阵作为输入提供给它。 我有两个不同的语法示例: The official C++ example (line # 12
我是一名优秀的程序员,十分优秀!