tf.keras的简单介绍

一. Keras介绍

  • Keras是一个用python编写的开源神经库,能够运行子在Tensoflow,Micsrosoft Cognitive
    Toolkit,Theano或PlaidML之上,kerea是单独是深度学习框架,一些代码用到了Tnesorflow的API,但在TensorFlow1.9新增加了tf.kerea。Keras与TF的深度集成。

二. 为什么使用keras

  1. keras提供了一致且简单的API,将常见的用例所需的用户操作数量降至最低。
  2. Keras与底层深度学习语言(特别是TensorFlow)集成在一起,它可以实现你用基础语言编写的东西,特别的,tf.keras作为Keras API可以与Tensorflow无缝集成。
  3. Keras被工业界与学术界广泛采用。

三、tf.keras的常见方法:

keras官方文档:https://keras.io/zh/

其中:

  • layers用于构建构建神经网络,包括全连接层、卷积层、池化层等。

  • looses可以提供现成的损失函数,包括均方误差、交叉熵等。

  • models:用于定义模型的模块,包括序列模型、函数式模型等。

  • metrics是提供评估的指标,例如我们熟知的准确率、精确率、召回率、增长率,除此之外还有转化率、用户留存率、平均访问时长、用户满意度等。

  • preprocessing提供数据的预处理,数据预处理包括数据清洗、数据集成、数据转换、数据规约等步骤。常见的数据预处理方法包括缺失值处理、异常值处理、数据归一化、特征选择等。

四. 图片的读取处理:

** form tensorflow . python . keras . preprocessing . image **

  1. 可以直接使用tensorflow.keras.preprocessing.image,而不用去.python,但在pycharm可能回找不到keras.。在使用image方法前要确保下载了 pip install pillow ,因为image的一些方法是基于它编写的。

  2. 读取图像的方法:

 tensorflow . python . keras . preprocessing . image import  load_img	
load_img(path=  ,  target=   ) 读取图像 
  • path: 图片的路径
  • target::图片的目标大小
  • 返回的是一个PIL.JpegImage.JpeImageFile对象,如果打印它,它的结果可以是:
    在这里插入图片描述

五. 图片的特征值处理

  1. 图片的大小调整:因为一些深度学习神经网络回要求图片的大小为特定的值。 b. 类型转化换:keras读取图片的方法是keras. preprocessing .

  2. image,但Tensorflow也有自己读取图片的方法tf.data.Dataset。它们读取数据返回的类型都不一样,故keras读取图片要经过类型转换才能给tensorflwo使用。

  3. PIL图像对象可以直接用于图像处理,如缩放、剪裁等操作。但是,在进行深度学习模型训练时,通常需要将图像转换为数组的形式输入模型。因此,需要使用img_to_array函数将PIL图像对象转换为NumPy数组。

  • keras图片的类型转换如下:

img_to_array(img= ,data_format=None ,dtype =None) 图片转换为数组格式

  • img: PIL lmage instance(PIL图像实例),也就是 load_img方法的返回类型

  • data_format: 字符串
    指定返回的Numpy数组的通道顺序,默认为None,表示使用Keras配置文件中的设置。可以设置为"channels_first"或"channels_last",分别表示返回的Numpy数组的通道顺序为通道数在前或在后。

  • img_to_array 和load_img都在tensorflow . python . keras . preprocessing .image中.

六、编程实例

```python form tensorflow . python . keras . preprocessing . image loda_img img to_array image = loda_img("./bus/100.jpg", target_size=(300,300)) print(image) image = ima_to_array(image) print(image.shipe) print(image) ```

  • 第一个打印出来的是PIL.JpegImage.JpeImageFile对象
  • 第二个是用shape打印PIL.JpegImage.JpeImageFile对象转换出来的数组对象的形状
    第三个打印的是数组,它由0到255之间的整数构成

在这里插入图片描述

  1. 上面说使用img_to_array函数将PIL图像对象转换为NumPy数组,这个数组中的数字就是图像的像素值,在下面打印的数组就是个例子。数组内数字通常是一个0到255之间的整数,如果需要将像素值归一化到0到1之间,可以将数组中的每个元素除以255。
  2. 既然提到了归一化,我们谈谈为什么要对img_to_array函数返回的数组进行归一化?其目的是为了使得模型的训练更加稳定和快速。具体来说,归一化可以带来以下几个好处:
  • 加速模型的训练:归一化可以使得模型的训练更加稳定,加速模型的收敛速度,减少训练时间。

  • 提高模型的精度:归一化可以减少特征之间的差异,避免模型因为特征之间的差异而出现过拟合或欠拟合的情况,提高模型的泛化能力和精度。

  • 方便模型的优化:归一化可以使得特征的值域范围在一个比较小的范围内,避免特征的值过大或过小,导致梯度消失或梯度爆炸的情况,方便模型的优化。

  • 24
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值