![从零开始学TensorFlow2.0](https://wfqqreader-1252317822.image.myqcloud.com/cover/188/33692188/b_33692188.jpg)
3.1 张量
TensorFlow包含构建数据流图与计算数据流图等,其构图的基础单元是Tensors(张量)。张量是TensorFlow最核心的组件,所有的运算和优化都是基于张量完成的。
本节将使用TensorFlow 2.0对张量进行介绍。
(1)在TensorFlow 2.0中,所有的操作都必须导入TensorFlow,代码如下。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_27_1.jpg?sign=1738913269-C0uvyVT2LzzL0h5EEi6GYmsZtuK08NUi-0-f3655491bb74fb51114630d83b36e1d1)
(2)代码的运行结果是打印目前使用的TensorFlow版本。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_27_2.jpg?sign=1738913269-GdGplLsH2gLmYaPuIIrlaS0quYFGBXLi-0-1d779fab130102de40966eb8de1f6d2e)
说明:从TensorFlow 2.0开始,默认启用Eager模式。TensorFlow的Eager模式是一个命令式,是由运行定义的接口,一旦被调用,其操作立即被执行,无须事先构建静态图。
(3)张量是一个多维数组,在TensorFlow 2.0中表现为tf.Tensor对象与NumPy ndarray对象类似,tf.Tensor对象具有数据类型和形状。在TensorFlow 2.0中,tf.Tensors可以保持在GPU中。TensorFlow提供了丰富的操作库(tf.add、tf.matmul、tf.linalg.inv等),灵活使用这些操作库可以方便地操作tf.Tensor对象,节省建模时间。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_27_3.jpg?sign=1738913269-xcdnHfa1p8eWgduG6pm7CKPE6mt6pWvv-0-fbab057491b69a88216855ba49776b5f)
(4)代码的运行结果如下。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_27_4.jpg?sign=1738913269-MmnhFapKyamjmJZH38ROnC6xEBf81ZUJ-0-67dcd3dd113aedc3b47fa0734840c236)
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_28_1.jpg?sign=1738913269-v4a4tzTU0c7kJPy8g7X49pLrbzrxDrQb-0-f6f2d178e5b970e1dc89be9cceedd527)
(5)在TensorFlow 2.0中的每个Tensor都有形状和类型,可以通过如下代码进行验证。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_28_2.jpg?sign=1738913269-yJk8nCgtFcuqX4kKz00ulZt2FGlTvJr3-0-0eda6e27e939a0ecaaa642eb08f2fbc3)
(6)代码的运行结果如下。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_28_3.jpg?sign=1738913269-q8NIcQuZzN2Ey8jcoAEHEpZUgpvNHuJl-0-6954e519f1a8b4b1f19304ba357bd791)
(7)在TensorFlow 2.0中,NumPy数组和tf.Tensors之间最明显的区别是:①张量可以由GPU(或TPU)支持;②张量不可变;③TensorFlow tf.Tensors和NumPy ndarray之间的转换很容易。使用下面的例子进行介绍。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_28_4.jpg?sign=1738913269-NiXrUDxILu2JV3k9H1R2jzQO0fvP0g8N-0-ec6e4a7641267b9b6e15801831fb2fa7)
(8)代码的运行结果如下。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_28_5.jpg?sign=1738913269-arbzgsVyrfFrkeuuHhyrauFHR20c9Ige-0-147e13bfd5af96e97b8048e99bd99d5d)
说明:TensorFlow操作能够自动将NumPy ndarray转换为Tensors。