Удаление ядер после создания графа в TensorFlow во время выполнения - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь использовать RT-M DNet (Многодоменная сеть в реальном времени) для отслеживания нескольких объектов. для этого я пытаюсь создать матрицу весов более высокого ранга, наложенную друг на друга в зависимости от количества обнаруженных объектов. В настоящее время мне удалось сгенерировать несколько ядер вне графика в a для l oop, а затем передать его на график:

    w6 = []
    for n_obj in range(pos_data.shape[0]):
        w6.append(tf.get_variable("fc6/kernel-" + str(n_obj), shape=(512, 2),
                             initializer=tf.contrib.layers.xavier_initializer()))

    print("modeling fc6 branches...")
    prob, train_op, accuracy, loss, pred, initialize_vars, y, fc6 = build_branches(fc5, w6)

def build_branches(fc5, w6):
    y = tf.placeholder(tf.int64, [None, None])

    b6 = tf.get_variable('fc6/bias', shape=2, initializer=tf.zeros_initializer())

    fc6 = tf.add(tf.matmul(fc5, w6), b6)

    loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y,
                                                                         logits=fc6))

    train_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, scope="fc6")

    with tf.variable_scope("",  reuse=tf.AUTO_REUSE):

        optimizer = tf.train.AdamOptimizer(learning_rate=0.001, name='adam')
        train_op = optimizer.minimize(loss, var_list=train_vars)

        initialize_vars = train_vars
        initialize_vars += [optimizer.get_slot(var, name)
                            for name in optimizer.get_slot_names()
                            for var in train_vars]
        if isinstance(optimizer, tf.train.AdamOptimizer):
            initialize_vars += optimizer._get_beta_accumulators()

    prob = tf.nn.softmax(fc6)
    pred = tf.argmax(prob, 2)
    correct_pred = tf.equal(pred, y)

    accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))

    return prob, train_op, accuracy, loss, pred, initialize_vars, y, fc6

Graph

Теперь я хочу придумать способ удаления ядер для объекта, который теряется во время отслеживания. Я думаю, это невозможно после создания графика? Есть идеи?

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