Pytorch: nn.Параметр в переменную тензорного потока - PullRequest
1 голос
/ 20 апреля 2019

Я пытаюсь преобразовать код pytorch в код тензорного потока.Я не могу найти способ преобразования параметра в tenorflow, я думал использовать tf.get_variable, но не уверен в этом.

Код Pytorch выглядит следующим образом:

def gen_adj(A):
    D = torch.pow(A.sum(1).float(), -0.5)
    D = torch.diag(D)
    adj = torch.matmul(torch.matmul(A, D).t(), D)
    return adj

self.A = Parameter(torch.from_numpy(_adj).float())
inp = inp[0]
adj = gen_adj(self.A).detach()
x = self.new_fucn(inp, adj)

Так что дляэта строка

self.A = Parameter(torch.from_numpy(_adj).float())

То, что я пробовал, это:

self.A = tf.get_variable(name="self.A", 
                                 shape=[_adj.shape[0],_adj.shape[1]], 
                                 initializer=tf.constant_initializer(np.array(_adj)), 
                                 trainable=False
                                )

и функция get_adj:

def tensorflow_adj(A):

    D = tf.pow(tf.reduce_sum(A, 1),-0.5)
    D = tf.diag_part(D)
    adj = tf.matmul( tf.transpose(tf.matmul(A,D),[1,0]),D)

    return adj

Я был бы очень признателен, если бы кто-нибудь любезно дал мненесколько советов, если мой преобразованный код правильный.

Спасибо!

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