TensorFlow2.0学习笔记(2)—关于numpy和tensorflow

本文主要介绍numpy和tensorflow的一些区别以及转化的方法以及tensor的概念。

1.numpy和tensorflow

Numpy是用来处理数组的科学计算库,其在深度学习兴起之前就已经存在,其不能很好的支持GPU计算,也不能支持自动求导。而tf正是为了弥补这些缺点而产生的。

2.tensor

在tf中我们经常会见到以下一些类型。
TensorFlow2.0学习笔记(2)—关于numpy和tensorflow_第1张图片
其中,Scalar代表一个标量(一维向量代表的是一个1*1的矩阵,其运算规则是遵循线性代数中的矩阵运算规则。而标量只是一个常数,它参与的是数乘运算。),其维度为0。Vector代表向量其维度为1,
Matrix代表一个矩阵。严格意义上的定义,当rank>2时,才能把矩阵叫做tensor,但是在TF中我们通常把维度为1的数据也可以叫做tensor。在此处从数学意义上说,不够严谨,但是在工程表达中没有差别。

3.numpy和tensor的转化

3.1首先判断是否为tensor:
假设:

a=np.arange(5)

使用如下命令判断是否为tensor:

tf.is_tensor(a)

Flase

3.2 转换

aa=tf.convert_to_tensor(a)

使用tf.convert_to_tensor可以把np转换为tensor,

4.其他函数

4.1 tensorflow我们还可以在不同的数据类型以及数据长度之间相互转化。

tf.cast(aa,dtype=tf.float32)
<tf.Tensor: id=32,shape=(5,),dtype=float32,numpy=array([0.,1.,2.,3.,4.],dtype=float32)>

使用cast函数可以转换不同数据之间的类型以及数据长度。以上程序是把aa从int64转换为float32数据类型。

4.2 Variable是指神经网络中可以变化的变量,主要是为了用来适应神经网络中参数更新的属性。

a=tf.range(5)

b=tf.Variable(a)

你可能感兴趣的:(TF学习)