小编Sha*_*nav的帖子

评估TF操作中的TF模型会引发错误

我正在使用TensorFlow2。我正在尝试优化一个功能,该功能使用了训练有素的Tensorflow模型(有毒)。

@tf.function
def totalloss(x):
    xt = tf.multiply(x, (1.0 - m)) + tf.multiply(m, d)
    label = targetlabel*np.ones(xt.shape[0])
    loss1 = poison.evaluate(xt, label, steps=1)
    loss2 = tf.linalg.norm(m, 1)
    return loss1 + loss2
Run Code Online (Sandbox Code Playgroud)

我无法执行此功能,但是,当我注释@ tf.function行时,该功能有效!

我需要将此函数用作张量流op,以便优化“ m”和“ d”。

值错误:未知图形。中止。

这就是我定义模型和变量的方式:

# mask
m = tf.Variable(tf.zeros(shape=(1, 784)), name="m")
d = tf.Variable(tf.zeros(shape=(1, 784)), name="d")
# target
targetlabel = 6
poison = fcn()
poison.load_weights("MNISTP.h5")
adam = tf.keras.optimizers.Adam(lr=.002, decay=1e-6)
poison.compile(optimizer=adam, loss=tf.losses.sparse_categorical_crossentropy)
Run Code Online (Sandbox Code Playgroud)

这就是我以后调用该函数的方式:(执行此行会导致下面列出的错误。但是,如果我在@ tf.function行中注释掉,则此命令有效!)

loss = totalloss(ptestdata)
Run Code Online (Sandbox Code Playgroud)

这是整个回溯调用:

ValueError: in converted code:

    <ipython-input-52-4841ad87022f>:5 totalloss  *
        loss1 = poison.evaluate(xt, label, …
Run Code Online (Sandbox Code Playgroud)

tensorflow google-colaboratory tensorflow2.0

7
推荐指数
1
解决办法
363
查看次数