gpt4 book ai didi

tensorflow - 如何在 tensorflow 中实现过滤器?

转载 作者:行者123 更新时间:2023-12-03 13:06:22 25 4
gpt4 key购买 nike

我有一个卷积神经网络,其中三个图像作为输入:

x_anchor = tf.placeholder('float', [None, 4900], name='x_anchor')
x_positive = tf.placeholder('float', [None, 4900], name='x_positive')
x_negative = tf.placeholder('float', [None, 4900], name='x_negative')

train 内函数,我用实际图像提供占位符:
 input1, input2, input3 = training.next_batch(start,end)
....some other operations...
loss_value = sess.run([cost], feed_dict={x_anchor:input1, x_positive:input2, x_negative:input3})

我在这三个输入上使用了三元组损失函数(实际上是上面的 成本 变量):
def triplet_loss(d_pos, d_neg):

margin = 0.2

loss = tf.reduce_mean(tf.maximum(0., margin + d_pos - d_neg))

return loss

如何过滤损失,因此只有 loss_value > 0 的图像将用于训练网络?

我怎样才能实现类似的东西:
if(loss_value for input1, input2, input3 > 0)
use inputs to train network
else
do nothing/try another input

到目前为止我尝试过的:

我一张一张地拍摄图像(input1[0]、input2[0]、input3[0]),计算损失,如果损失为正,我将计算(并应用)梯度。但问题是我使用 辍学在我的模型中,我必须在我的输入上应用模型两次:
  • 首先计算loss并验证是否大于0
  • 其次运行优化器:这是出现问题的时候。前面提到过,我使用dropout,所以模型在我的输入上的结果是不一样的,所以即使第1步确定的loss大于0,新的loss有时候也会为0。

  • 我也尝试使用 tf.py_func但卡住了。

    最佳答案

    TensorFlow 有一个新功能,称为“AutoGraph”。 AutoGraph 将 Python 代码(包括控制流、print() 和其他 Python 原生特性)转换为纯 TensorFlow 图形代码。例如:

    @autograph.convert()
    def huber_loss(a):
    if tf.abs(a) <= delta:
    loss = a * a / 2
    else:
    loss = delta * (tf.abs(a) - delta / 2)
    return loss

    由于装饰器,在执行时变成了这段代码:
    def tf__huber_loss(a):
    with tf.name_scope('huber_loss'):
    def if_true():
    with tf.name_scope('if_true'):
    loss = a * a / 2
    return loss,
    def if_false():
    with tf.name_scope('if_false'):
    loss = delta * (tf.abs(a) - delta / 2)
    return loss,
    loss = ag__.utils.run_cond(tf.less_equal(tf.abs(a), delta), if_true,
    if_false)
    return loss

    在使用 tf.cond() 之前,您想要做的事情可能已经实现了。 .

    我通过这个 medium 发现了这一点邮政。

    关于tensorflow - 如何在 tensorflow 中实现过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46876423/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com