赞
踩
事先说明一下:本文所用的是TensorFlow2.5.0版本。在TensorFlow2.0之后,TensorFlow的很多东西都做出了改变,与1.x版本已经有很多不同。整体来说,TensorFlow变得更加的简洁,已经去掉了包括Session(),占位符等。语法形式上,更加和Pytorch有所靠拢。因此有一些内行人认为,Tensorflow2.x与pytorch,只需花费主要经历在一个上面,另一个就可以很容易上手。
整体而言,TensorFlow的数据类型,大体可以分成两大部分:基本数据类型,以及Tensor类型
首先,在基本数据的支持上,TensorFlow支持下列基本数据类型:
整型有符号 | int8:8位整数;int16:16位整数;int32:32位整数;int64:64位整数。 |
---|---|
整型无符号 | uint8:8位无符号整数;uint16:16位无符号整数;uint32:32位无符号整数;uint64:64位无符号整数 |
浮点型 | float16:16位浮点数;float32:32位浮点数;float64:64位浮点数。 double:等同于float64。 |
字符串 | string:字符串 |
布尔 | bool:布尔型 |
复数类型 | tf.complex64:64位复数。 tf.complex128:128位复数 |
容器类型并不是TensorFlow独有的,就比如说numpy当中有array,python本身也有list等等。而在TensorFlow当中,则是:tf.Tensor。
在Numpy当中,其实已经在原本Python的基础上做了数据运算的优化。但是,Numpy却无法适应大数据和深度学习等运算。在现实当中,GPU由于具有多线程运算的特点,因此,整体速率上,要比CPU快很多。但是Numpy却恰恰没法和GPU进行联动。Numpy也没有自动求导的方法,涉及梯度下降等,就会很麻烦。在TensorFlow当中,就由此引入了Tensor类型,可以很好的与GPU进行联动,而且更加适用于大数据与深度学习。
下面,我们就来介绍一下这个张量类型
Tensor整体来说有如下类型:
在TensorFlow当中,很多时候,把维度大于2的数据,也泛泛的称为Tensor
比如说,我们可以创建Constant:虽然这个单词翻译为常量,但是和其他高级语言当中const int a = 10还是不同的。因为其他高级语言当中的const一旦指定,便无法修改。但是TensorFlow当中是允许的。比如说,你写一个
a = tf.constant(1)
a = tf.constant(2.)
放心,不会报错的。
import tensorflow as tf
In [2]: tf.constant(1) # 创建一个int型常量
Out[2]: <tf.Tensor: shape=(), dtype=int32, numpy=1>
In [4]: tf.constant(1.) # 创建浮点型常量
Out[4]: <tf.Tensor: shape=(), dtype=float32, numpy=1.0>
In [5]: tf.constant(2.,dtype=tf.double) # 可以指定数据类型
Out[5]: <tf.Tensor: shape=(), dtype=float64, numpy=2.0>
In [6]: tf.constant([True,False]) # 创建bool类型常量
Out[6]: <tf.Tensor: shape=(2,), dtype=bool, numpy=array([ True, False])>
In [7]: tf.constant('hello world') #创建字符型常量
Out[7]:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。