tensor和numpy的互相转换的实现示例
时间:2020-12-14 15:43:31|栏目:Python代码|点击: 次
要对tensor进行操作,需要先启动一个Session,否则,我们无法对一个tensor比如一个tensor常量重新赋值或是做一些判断操作,所以如果将它转化为numpy数组就好处理了。下面一个小程序讲述了将tensor转化为numpy数组,以及又重新还原为tensor:
import tensorflow as tf img1 = tf.constant(value=[[[[1],[2],[3],[4]],[[1],[2],[3],[4]],[[1],[2],[3],[4]],[[1],[2],[3],[4]]]],dtype=tf.float32) img2 = tf.constant(value=[[[[1],[1],[1],[1]],[[1],[1],[1],[1]],[[1],[1],[1],[1]],[[1],[1],[1],[1]]]],dtype=tf.float32) img = tf.concat(values=[img1,img2],axis=3) sess=tf.Session() #sess.run(tf.initialize_all_variables()) sess.run(tf.global_variables_initializer()) print("out1=",type(img)) #转化为numpy数组 img_numpy=img.eval(session=sess) print("out2=",type(img_numpy)) #转化为tensor img_tensor= tf.convert_to_tensor(img_numpy) print("out2=",type(img_tensor))
输出:
out1= <class 'tensorflow.python.framework.ops.Tensor'>
out2= <class 'numpy.ndarray'>
out2= <class 'tensorflow.python.framework.ops.Tensor'>