Оценка модели TF внутри ошибки бросков операции TF - PullRequest
0 голосов
/ 16 июня 2019

Я использую TensorFlow 2. Я пытаюсь оптимизировать функцию, которая использует потерю обученной модели тензорного потока (яд).

@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

Я не могу выполнить эту функцию, однако, когда я комментирую строку функции @ tf.function, функция работает!

Мне нужно использовать эту функцию в качестве операции с тензорным потоком, чтобы оптимизировать 'm' и 'd'.

Значение Ошибка: неизвестный график. Aborting.

Вот как я определяю модель и переменные:

# 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)

Вот как я вызываю функцию позже: (Выполнение этой строки приводит к ошибке, перечисленной ниже. Однако, если я закомментирую строку @ tf.function, эта команда работает!)

loss = totalloss(ptestdata)

Это весь вызов трассировки:

ValueError: in converted code:

    <ipython-input-52-4841ad87022f>:5 totalloss  *
        loss1 = poison.evaluate(xt, label, steps=1)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:746 evaluate
        use_multiprocessing=use_multiprocessing)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training_arrays.py:693 evaluate
        callbacks=callbacks)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training_arrays.py:187 model_iteration
        f = _make_execution_function(model, mode)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training_arrays.py:555 _make_execution_function
        return model._make_execution_function(mode)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:2034 _make_execution_function
        self._make_test_function()
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:2010 _make_test_function
        **self._function_kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/backend.py:3544 function
        return EagerExecutionFunction(inputs, outputs, updates=updates, name=name)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/backend.py:3429 __init__
        raise ValueError('Unknown graph. Aborting.')

    ValueError: Unknown graph. Aborting. 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...