keras是库还是框架(keras是什么库)

keras是库还是框架(keras是什么库)

扫码添加渲大师小管家,免费领取渲染插件、素材、模型、教程合集大礼包!

大家好,今天来介绍keras是库还是框架(keras怎么读英语单词发音)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!

keras是什么

Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、旅启悉Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化[1]。

Keras在代码结构上由面向对象方法编写,完全模块化并具有可扩展性,其运行机制和说明文档有将用户体验和使用难度纳拆乎入考虑,并试图简化复杂算法的实现难度[1]。Keras支持现代人工智能领域的主流算法,包括前馈结构和递归结构的神经网络,也可以通过封装参与构建统计学习模型[2]。在硬件和开发环境方面,Keras支持多操作系统下的多GPU并行计算,可以根据后台设置转化为Tensorflow、Microsoft-CNTK等系统下的组件[3]。

Keras的主要开发者是谷旁则歌工程师François Chollet,此外其GitHub项目页面包含6名主要维护者和超过800名直接贡献者[4]。Keras在其正式版本公开后,除部分预编译模型外,按MIT许可证开放源代码

keras怎么读

keras的读音:【慧族kerəz】,Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可塌局视化。

Keras的主要开发者是谷歌工程师François Chollet,此外其GitHub项目页面包含6名主要维护者和超过800名直接贡献者 。Keras在其正式版本公开后,除部分预编译模型外,按MIT许可证开放源代码。

Keras的神经网络API是在封装后与使用者直接进行交互的API组件,在使用时可以调用Keras的其它组件。除数据预处理外,使用者可以通过神经网络API实现机器学习任务中的常见操作,包括人工神经网络的构建、编译、学习、评估、测团碧让试等。

人工智能 Python深度学习库有哪些

由于Python的易用性和可扩展性,众多深度学习框架提供了Python接口,其中较为流行的深度学习库如下:
第一:Caffe
Caffe是一个以表达式、速悄汪凳度和模块化为核心的深度学习框架,具备清晰、可读性高和快速的特性,在视频、图像处理方面应用较多。
Caffe中的网络结构与优化都以配置文件形式定义,容易上手,无须通过代码构建网络;网络训练速度快,能够训练大型数据集与State-of-the-art的模型,模块化的组件可以方便地拓展到新的模型与学习任务上。
第二:Theano
Theano诞生于2008年,是一个高性能的符号计算及深度学习库,被认为是深度学习库的始祖之一,也被认为是深度学习研究和应用的重要标准之一。其核心是一个数学表达式的编译器,专门为处理大规模神经网络训练的计算而设计。
Theano很好地整合了Numpy,可以直接使用Numpy的Ndarray,使得API接口学习成本大为降低;其计算稳定性好,可以精准地计算输出值很小的函数;可动态地生成C或者CUDA代码,用来编译成高效的机器代码。
第三:TensorFlow
TensorFlow是相对高阶的机器学习库,其核心代码使用C++编写,并支持自动求导,使得用户可以方便地设计神经网络结构,不需要亲自编写C++或CUDA代码,也无须通过反向传播求解梯度。由于底层使用C++语言编写,运行效率得到了保证,并简化线上部署的复杂度。
TensorFlow不只局限于神经网络,其数据流式图还支持非常自由的陵散算法表达,也可以轻松实现深度学习以外的启旅机器学习算法。
第四:Keras
Keras是一个高度模块化的神经网络库,使用Python实现,并可以同时运行在TensorFlow和Theano上。
Keras专精于深度学习,其提供了到目前为止最方便的API,用户仅需将高级的模块拼在一起便可设计神经网络,大大降低了编程开销与理解开销。

人工智能常用的开发框架

人工智能常用的开发框架如下:

1、TensorFlow

TensorFlow是人工智能领域最常用明敏的框架让竖,是一个使用数据流图进行数值计算的开源软件,该框架允许在任何CPU或GPU上进行计算,无论是台式机、服务器还是移动设备都支持。该框架使用C++和Python作为编程语言,简单易学。

2、微软的CNTK

CNTK是一款开源深度学习工具包,是一个提高模块化和维护分离计算网络,提供学习算法和模型描述的库,可以同时利用多台服务器,速度比TensorFlow快,主要使用C++作为编程语言。

3、Theano

Theano是一个强大的Python库,该库使用GPU来执行数据密集型计算,操作效率很高,常被用于为大规模的计算密集型操作提供动力。

4、Caffe

Caffe是一个强大的深度学习框架,主要采用C++作为编程语言,深度学习速度非常快,借助Caffe,可以非常轻松地构建用于图像分类的卷积神经网络。

5、Keras

Keras是一个用Python编写的开源的神坦槐大经网络库,与TensorFlow、CNTK和Theano不同,它是作为一个接口,提供高层次的抽象,让神经网络的配置变得简单。

6、Torch

Torch是一个用于科学和数值的开源机器学习库,主要采用C语言作为编程语言,它是基于Lua的库,通过提供大量的算法,更易于深入学习研究,提高了效率和速度。它有一个强大的n维数组,有助于切片和索引之类的操作。除此之外,还提供了线性代数程序和神经网络模型。

7、Accord.NET

Accord.NET框架是一个NET机器学习框架,主要使用C#作为编程语言,该框架可以有效地处理数值优化、人工神经网络,甚至是可视化,除此之外,Accord.NET对计算机视觉和信号处理功能非常强大,同时也使得算法的实现变得简单。

keras如何快速入门

作者 杨照璐(微信号lwyzl0821)

编辑 言有三

这一次我们讲讲keras这个简单、流行的深度学习框架,一个图像分类任务从训练到测试出结果的全流程。

相关的代码、数据都在我们 Git 上,希望大家 Follow 一下这个 Git 项目,后面会持续更新不同框架下的任务。

Keras是一个非常流行、简单的深度学习框架,它的设计参考了torch,用Python语言编写,是一个高度模块化的神经网络库,支持GPU和CPU。能够在TensorFlow,CNTK或Theano之上运行。 Keras的特点是能够快速实现模型的搭建, 简单方便地让你实现从想法到实验验证的转化,这都是高效地进行科学研究的关键。

Keras的安装非常简单,但是需要先安装一个后端框架作为支撑,TensorFlow, CNTK,Theano都可以,但是官网上强烈建议使用TensorFlow作为Keras的后端进行使用。本例以TensorFlow 1.4.0 版本作为Keras的后端进行测试。

通过上面两条命令就可以完成TensorFlow和Keras的安装,此处需要注意的一点是Keras的版本和TensorFlow的版本要对应,否则会出现意外的错误。具体版本对应关系可在网上进行查询。

3.1 MNIST实例

MNIST手写字符分类被认为是深度学习框架里的“Hello Word!”,下面简单介绍一下MNIST数据集案例的测试。Keras的官方github的example目录下提供了几个MNIST案例的代码,下载mnist_mlp.py,mnist_cnn.py文件,本地运行即可,其他文件读者也可以自行测试。

3.2 数据定义

前面我们介绍了MNIST数据集实例,很多读者在学习深度学习框架的时候都卡在了这一步,运行完MNIST实例之后无从下手,很大原因可能是因为不知道怎么处理自己的数据集,这一节我们通过一个简单的图像二分类案例,介绍如何实现一个自定义的数据集。

数据处理有几种方式,一种是像MNIST、CIFAR数据集,这些数据集的特点是已经为用户打包封装悄穗贺好了数据。用户只要load_data即可实现数据导入。其实就是事先把数据进行解析,然后保存到.pkl 或者.h5等文件中,然后在训练模型的时候直接导入,输入到网络中;另一种是直接从本地读取文件,解析成网络需要的格式,输入网络进行训练。但是实际情况是,为了某一个项目我们不可能总是找到相应的打包好的数据集供使用,这时候自己建立一个dataset就十分重要。

Keras提供了一个图像数据的数据增强文件,调用这个文件我们可以实现网络数据加载的功能。

此处采用keras的processing模块里的ImageDataGenerator类定义一个图像分类任务的dataset生成器:

下面简单地介绍一下上面的代码,完整代码请移步Git工程。

Keras的processing模块中提供了一个能够实时进行数据增强的图像生成类ImagGenerator,该类下面有一个函数flow_from_directory,顾名思义该函数就是从文件夹中获取图像数据。关于ImageGenerator更多的使用可以参考官方源码。数据启派集结构组织如下:

此处还需要注意的一点是,我们现在进行的是简单的图像分类任务训练,假如要完成语义分割,目标检测等任务,则需要自定义一个类(继承ImageDataGenerator),具体实现可以查询相关代码进行参考。

Keras网络模型搭建有两种形式,Sequential 顺序模型和使用函数式API的 Model 类模型。本教程的例子采用一个简单的三层卷积,以及两层全连接和一个分类层组成的网络模族铅型。由于函数式API更灵活方便,因此下面采用函数式方法搭建模型,模型定义如下:

4.1 函数式API

即输出是12通道,卷积核大小3*3,步长为2,padding='same'表示边缘补零

axis表示需要归一化的坐标轴,bn_axis=3,由于采用TensorFlow作为后端,因此这句代码表示在通道数坐标轴进行归一化。

x = Flatten()(x) 表示将卷积特征图进行拉伸,以便和全连接层Dense()进行连接。

Dense()实现全连接层的功能,1200是输出维度,‘relu'表示激活函数,使用其他函数可以自行修改。

最后一层采用‘softmax’激活函数实现分类功能。

最终返回Model,包含网络的输入和输出。

4.2 模型编译

网络搭建完成,在网络训练前需要进行编译,包括学习方法、损失函数、评估标准等,这些参数分别可以从optimizer、loss、metric模块中导入。具体代码如下:

其中callbacks模块包含了TensorBoard, ModelCheckpoint,LearningRateScheduler等功能,分别可以用来可视化模型,设置模型检查点,以及设置学习率策略。

5.1 模型训练

Keras模型训练过程非常简单,只需一行代码,设置几个参数即可,具体代码如下:

首先指定数据生成器,train_generator, 前面介绍过;steps_per_epoch是每次epoch循环的次数,通过训练样本数除以batch_size得到;epochs是整个数据集重复多少次训练。

Keras是高度封装的,在模型训练过程中,看不到网络的预测结果和网络的反向传播过程,只需定义好损失函数,事实上,网络定义中的模型输出会包含网络的输入和输出。

5.2 训练过程可视化

keras可以采用tensorboard实现训练过程的可视化。执行完下面的命令就可以在浏览器访问http://127.0.0.1:6006查看效果。

tensorboard --logdir 日志文件路径(默认路径=‘./logs’’)

上面是分别是训练和测试过程的loss和accuracy。

5.3 模型测试

model = simpleconv3()

model.load_weights(model_path, by_name=True)

image_path = '../../../../datas/head/train/0/1left.jpg'

img = Image.open(image_path)

img = img_to_array(img)

img = cv2.resize(img, image_size)

img = np.expand_dims(img, axis=0)

img = preprocess_input(img)

result = model.predict(img, batch_size=1)

print(result)

以上代码简单介绍一下:模型测试流程非常清晰,首先加载模型,加载参数>>将数据输入网络>>模型预测。

模型训练完成后,仅需用model.save_weights('models/model.h5')一句代码就可以完成模型的保存。同样,模型的导入采用model.load_weights(model_path, by_name=True),需要注意的是要设置by_name=True,这样就能保证和模型名称一样的参数都能加载到模型,当然模型定义要和参数是匹配的,假如要进行fine-tune我们只需保证需要重新训练或者新加的网络层的名称和预加载模型参数名称不一样就可以。

以上内容涵盖了采用keras进行分类任务的全部流程,从数据导入、模型搭建、模型训练、测试,模型保存和导入几个方面分别进行了介绍。当然这只是一些基本的应用,还有一些高级、个性化功能需要我们进一步学习,有机会,下一次介绍一下自定义网络层、设置check_point、特征可视化等特性。

分享到 :
相关推荐

日本免备案虚拟空间使用不足怎么清理(日本免备案虚拟主机)

日本虚拟空间使用不足。可以通过以下方法进行清理:1。检查无用文件和文件夹首先要检[&...

SugarHosts虚拟主机中安装Discuz的教程

SugarHosts又名糖果主机。是一家成立于2009年的知名国外主机商。是一家综合...

0xc00000221简单解决方法(电脑开机时出现“错误代码0xc000000f”怎么办?)

大家好,今天来介绍0xc00000221简单解决方法(错误0xc0000001无法启...

判断租用美国服务器质量好坏的方式有哪些(判断租用美国服务器质量好坏的方式有哪些)

判断租用美国服务器质量好坏的方式有:1。检测美国服务器主机配置的性能如何;2。检测美...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注