![从零开始学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=1738863980-tOPMPMSk0aLns0GxUk0Y9bakEm3bul09-0-28af47e18d9ed08c4875d870838e9986)
(2)代码的运行结果是打印目前使用的TensorFlow版本。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_27_2.jpg?sign=1738863980-88uzBbDNLtodAkh1DPCkSB2aqPagS6BA-0-d0cd41efd2249eb560fa5e7d2072db93)
说明:从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=1738863980-6zBN6B9DqmIHXJEXRwqamEfHZ0izNGsM-0-5d88c209a8c9bf0116d0f50f62a33f5d)
(4)代码的运行结果如下。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_27_4.jpg?sign=1738863980-s4s73nkYRWNS387JJvmn49om48ktrZTS-0-f77881630fe0aa5518c0499720ceffa0)
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_28_1.jpg?sign=1738863980-t01JjDRT4qv7PHfS95hTRhnb26cgBGbh-0-2b498dd8bd357e15b99234f8fafc1625)
(5)在TensorFlow 2.0中的每个Tensor都有形状和类型,可以通过如下代码进行验证。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_28_2.jpg?sign=1738863980-i29kABCJVR8vdIxG4O0Ltx7mQr655KKT-0-fda27d9dd19b738abfb04db8471daed8)
(6)代码的运行结果如下。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_28_3.jpg?sign=1738863980-XR2voHYsI2QC9gwZCdy7HaX2NlDZyej7-0-325e33dddff52e5fae991f9771132fc3)
(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=1738863980-BZDKIUP8yCOBFh6IxhH1lPxRBUJ7VlwG-0-a3642aed779502270036db308d593e87)
(8)代码的运行结果如下。
![](https://epubservercos.yuewen.com/938466/18002370308013906/epubprivate/OEBPS/Images/39376_28_5.jpg?sign=1738863980-PdpRzDCSokYTvSUZReyYzSRC8eg5dcop-0-0ad9d874d1c705ff598889da2b18fef3)
说明:TensorFlow操作能够自动将NumPy ndarray转换为Tensors。