Я пытаюсь преобразовать код 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
Я был бы очень признателен, если бы кто-нибудь любезно дал мненесколько советов, если мой преобразованный код правильный.
Спасибо!