通过张量流将二维张量转换为二维数组,或将二维数组转换为二维张量,是否保留了相应的结果?

时间:2019-05-13 08:00:55

标签: python tensorflow

将二维张量转换为二维数组或将二维数组转换为二维张量,是否保留相应的结果?

问:如何将2d张量转换为2d数组? 答:如果我们使用sess.run()或tensor.eval(),我们可以获得对应的数组或矩阵。 问:如何将二维数组转换为二维张量? 答:我们可以使用convert_to_tensor() 问:但是,转换后的数组或张量的乘法结果如何? 答:如果我们尝试一个简单的示例,例如:

import numpy as np
import tensorflow as tf

a=[[2,1],[1,3]]
b=[[3,1],[4,5]]

sess = tf.Session()
a_ = tf.convert_to_tensor(a)
b_ = tf.convert_to_tensor(b)
c_ = tf.matmul(a,b)


c = np.dot(a,b)
print(sess.run(c_))

在这种情况下,我们可以获得相同的输出。 但是,带有此链接的代码如何?

https://github.com/danielzuegner/nettack/blob/master/nettack/GCN.py

我更改了第83行的代码


self.h1 = spdot(self.An, spdot(self.X_comp, self.W1))
to 

tempH1 = spdot(self.X_comp,self.W1)
tempH1 = tf.constant(tempH1)

tempH2 = tempH1

#tempH2 = tf.convert_to_tensor((self.session.run(tempH1)))

self.h1 = spdot(self.An, tempH1)

在这里,我从上面的链接中稍微更改了代码。我在使用tempH2之前将tf.session()的声明[行132-144]移动。

但是,如果我使用

,则会得到非常不同的结果
1. tempH2 = tempH1

2. tempH2 = tf.convert_to_tensor((self.session.run(tempH1)))

从理论上讲,这是通过session.run()从2维张量到2维数组的组合操作,然后通过convert_to_tensor将其转换为张量。 但是,结果却大不相同。 为什么? 谁能给我一些提示吗?

0 个答案:

没有答案