将tf.Tensor与np.array相互转换---(已解决)


之前在使用tensorflow时遇到将Tensorndarry形式相互转换的坑,在此记录一下:


1.Tensor转化为ndarry

首先先输入一个Tensor格式的矩阵:

z = tf.random_normal([2, 3])
print(z)

输出显示为Tensor格式:

Tensor("random_normal_2:0", shape=(2, 3), dtype=float32)

要将以上Tensor格式的矩阵转换为ndarry形式,列举以下两种方法:(都是使用 tf.Session()

1) 在session中执行命令,使用Tensor.eval():
z = tf.random_normal([2, 3])
with tf.Session():
    z_np = z.eval()
    print(z_np)

输出结果(ndarry形式):

[[-0.31064209 -0.08908395 -1.17921364]
 [ 1.39581752  0.41957435  1.13686609]]
2) 将session赋值定义,使用以下操作:
z = tf.random_normal([2, 3])
sess = tf.Session()
z_np = sess.run(z)
print(z_np)

输出结果(ndarry形式):

[[-0.46523135 -0.46153125 -2.94854551]
 [ 3.02131545  0.15201205  3.84931325]]

2.ndarry转化为Tensor

首先先输入一个ndarry格式的矩阵:

a = np.random.random((2,3))
print(a)

输出显示为ndarry形式:

[[0.72948692 0.69415771 0.66658111]
 [0.04923425 0.57252612 0.68851612]]

使用以下命令进行转化:

tensor_a=tf.convert_to_tensor(a)
print(tensor_a)

输出显示为Tensor格式:

Tensor("Const:0", shape=(2, 3), dtype=float64)

记录一哈,希望可以帮到你。


版权声明:本文为qq_41603193原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。