一、Numpy的简单介绍
NumPy是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),其核心数据结构为ndarray。
二、用Numpy转换的原因
import tensorflow as tf
t = ([1, 2, 3], tf.float32)
print(t)
Tensor("Const:0", shape=(3,), dtype=float32)
从此可以看出,没有打印出张量的值,只是打印出了一部分信息。Tensorflow 通过创建会话(session),将张量转化为Numpy中的ndarray,从而打印出张量的值。
三、tensor与ndarray的相互转换
3.1 tensor转化为ndarray
3.1.1 直接转化
# -*- coding: utf-8 -*-
import tensorflow as tf
# 创建张量
t = ([1, 2, 3, 4], tf.float32)
# 创建会话
session = ()
# 张量转化为ndarray
array = (t)
# 打印其数据类型与其值
print(type(array))
print(array)
<class ''>
[ 1. 2. 3. 4.]
3.1.2 利用Tensor的成员函数eval
# -*- coding: utf-8 -*-
import tensorflow as tf
# 创建张量
t = ([1, 2, 3, 4], tf.float32)
# 创建会话
session = ()
# 张量转化为ndarray
array = (session=session)
# 打印其数据类型与其值
print(type(array))
print(array)
<class ''>
[ 1. 2. 3. 4.]
以上代码的另外一种写法为:
# -*- coding: utf-8 -*-
import tensorflow as tf
# 创建张量
t = ([1, 2, 3, 4], tf.float32)
# 张量转化为ndarray
with () as session:
array = ()
# 打印其数据类型与其值
print(type(array))
print(array)
<class ''>
[ 1. 2. 3. 4.]
3.2 ndarray转化为tensor
TensorFlow 通过 convert_to_tensor 这个函数进行转换,代码如下:
# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np
# 创建ndarray
array = ([1, 2, 3, 4], np.float32)
# 将ndarray转化为tensor
t = tf.convert_to_tensor(array, tf.float32, name='t')
# 打印输出
print(t)
Tensor("t:0", shape=(4,), dtype=float32)