diskgeniusv4.4.0_入门TensorFlow2.0

今天老师带领我们入门TensorFlow2.0。至于tensorflow2.0是啥嘛,详细的可以度娘一下。我简述一下,就是一个end-to-end machine-Learning open source plantform(端对端的开源机器学习的平台)。学习tensorflow需要引入tensor这个概念,tensor的汉语意思就是张量。张量是数学和力学的概念,是矢量的延伸,矢量是一阶张量,至于张量具体是什么大家感兴趣就度娘吧,我也不是专业的数学研究人员不很懂。tensorflow1.0引入了deferred execution(延迟执行)机制,在构建阶段是不执行计算操作的,因此称为静态图,要想执行计算操作,需要创建Session()对象才可以执行计算操作。而在tensorflow2.0里引入了默认执行eager execution机制,无需首先创建静态图,可以立刻执行计算操作,并返回结果,不像1.0那样需要创建Session对象。但是动态图执行效率不高,不利于后期调试。但是可以在程序调试阶段使用动态图,快速建立模型、调试程序;在部署阶段,采用静态图机制,从而提高模型的性能和部署能力。tensorflow2.0清理和整合API,将tf.keras作为构建和训练模型的标准API。

378fdc2db7160d29343e222f3da022b5.png

机器学习

安装tensorflow这个老生常谈了。

pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple

我们来简单入门讲讲tensorflow。它可以运行在GPU、CPU、嵌入式等等平台。你可以理解为是对numpy的二次封装,对numpy进行加速运算。numpy只能在CPU里计算,而tensorFlow可以在CPU、GPU、TPU里计算。当tensorflow与numpy一起在CPU里计算时,它们共享同一段内存。

它的基本运算是张量,张量是由Tensor实现,每个张量都是一个Tensor对象。可以使用tf.constant() 函数来创建张量。代码如下:

import tensorflow as tfa = tf.constant([[1,2],[3,4]])print(a)
  1. value:可以是数字或python列表或numpy数组
  2. shpae:张量的形状
  3. dtype:元素数据类型

dtype:全称是digital type汉语意思就是数字类型。这就创建了一个二维张量。

运行结果就是:

tf.Tensor([[1 2] [3 4]], shape=(2, 2), dtype=int32)

张量还可以使用Numpy方法,代码如下:

a = tf.constant([[1,2],[3,4]])print(a.numpy)print(type(a))

那么运行结果就是:

>

使用numpy方式生成张量时需要注意以下几点:numpy方法创建张量 使用np创建浮点数组时默认64位,而tensorflow默认时float32,但是tensorflow接受时自动转为64位浮点。一般建议使用np创建数组时建议为float32位足以使用。但是不建议低精度兼容高精度,因为会溢出。比如int32去兼容int64可能会存在溢出。

c4dd18cb501d3668961fed4d91531b98.png

Python

它的内置API非常多:

  1. cast()改变张量的数据类型,tensor支持转变的数据类型有:string int float bool。
  2. tf.convert_to_tensor()函数其他数据类型转换成tensor类型
  3. tf.fill()在tensor张量里自动填充某个元素,第一个参数是shape,第二个是value,根据传入的value自动判断数据类型
  4. tf.constant()也可以实现fill一样的功能,只不过它的填充数字在前面,shape参数位于后面。
  5. tf.random.normal(形状,均值,标准差,数据类型=tf.float32)这个是正态分布函数。均值即为:mean。标准差是:stddev。当mean=0,stddev=1为标准正态分布
  6. tf.random.truncated_normal()创建随机数张量。截断正态分布,基本参数一致。截断的依据是正态分布的2倍标准差。
  7. tf.random.set_seed()函数。设置随机数种子
  8. tf.random.uniform(shape,minval,maxval,dtype)函数。功能是均匀分布张量,它是一个左闭右开的区间。tf.random.uniform(shape,minval,maxval,dtype='int32')
  9. tf.random.shuffle()函数。功能是随机打乱序列。
  10. tf.range()创建整数序列,是左闭右开区间。

还可以使用字典式访问tensor对象属性,依次取出ndim、shape、dtype属性,代码如下:

atfc = tf.constant([[3,5],[7,0]])print('ndim:',atfc.ndim)print('shape:',atfc.shape)print('dtype:',atfc.dtype)

总结一下:tensorflow所有的运算都是在张量之间运行的。而numpy只是作为input和output使用的。我只是列举了常用的API,大家有兴趣的可以尝试尝试。

我始终保持开放的态度学习python,大佬可以批评指正。python之路漫漫,吾将上下而求索。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值