TensorFlow 1.x, присвоение значений переменной TF перед сессией? - PullRequest
0 голосов
/ 21 февраля 2020

Возможно ли вообще присвоить значение переменной TF другой переменной до вызова сеанса?

По сути, я пытался реализовать свою собственную функцию conv2d. Основываясь на том, что я узнал из этого поста ( Наивная реализация алгоритма свертки ), я создал следующий код:

def customized_conv(var, kernel):
    varT = tf.transpose(var)
    var_padded = tf.Variable(np.zeros([varT.shape[0], varT.shape[1], varT.shape[2] + 2, varT.shape[3] + 2]).astype(np.float32))
    var_padded[:, :, 1:-1, 1:-1].assign(varT)  # this does not work 
    result = tf.Variable(np.zeros(varT.shape).astype(np.float32))
    for i in range(varT.shape[2]):
        for j in range(varT.shape[3]):
            result[ :, :, i, j].assign(tf.reduce_sum(var_padded[:, :, i:i+3, j:j+3]*kernel,[2, 3]))
    return tf.transpose(result)

Но он дважды использует функцию назначения, которая не работает в TF 1.x.

Я огляделся и обнаружил довольно много сообщений, таких как:

Но все они требуют вызова сеанса, и я все еще строю график.

Интересно, есть ли какой-нибудь поворот, который я могу заставить эту работу?

...