【人工智能】Python常用库-Keras:高阶深度学习 API

Keras:高阶深度学习 API

Keras 是一个高效、用户友好的深度学习框架,作为 TensorFlow 的高级 API,支持快速构建和训练深度学习模型。它以模块化、简单和灵活著称,适合研究和生产环境。

Keras 的发音为 [ˈkerəs],类似于 “凯拉斯” 或 “克拉斯”。这个名字来源于希腊语 κέρας (kéras),意思是 “角” 或 “角质物”。这个词与深度学习的灵感来源——大脑的神经网络结构 有一定联系。

Keras 的作者 François Chollet 选择这个名字可能是为了体现一种简洁、优雅和强大的设计理念,正如它的框架目标一样:为开发者提供直观、用户友好且强大的工具

此外,Keras 是由 François Chollet 于 2015 年开发并开源,最初是一个独立的深度学习框架,后来成为 TensorFlow 的高级 API,进一步扩展了它的影响力和用户群体。


Keras 的主要特点

  1. 用户友好

    • 通过简单、直观的接口,减少学习曲线。
    • 使用 Python 编写,代码简洁易读。
  2. 模块化

    • 支持模型层的任意组合,如输入层、隐藏层、输出层、激活函数等。
  3. 支持多种计算后端

    • 作为 TensorFlow 的高级 API,完全整合了 TensorFlow 的功能。
  4. 高度灵活

    • 支持自定义模型、层和损失函数,满足高级用户需求。
  5. 高效的原型设计

    • 适合快速试验和迭代开发。

Keras 模型 API 类型

  1. Sequential API

    • 适用于简单的线性堆叠模型。
    • 每层按顺序叠加。
  2. Functional API

    • 适合构建复杂的非线性拓扑模型,如多输入、多输出模型。
    • 更加灵活,允许定义任意的图结构。
  3. Model Subclassing

    • 自定义模型的方式,通过子类化 tf.keras.Model 构建任意复杂模型。

Keras 的核心模块

  1. Layers

    • 基础构件,用于定义模型的每一层(如 Dense、Conv2D、LSTM)。
    from tensorflow.keras.layers import Dense, Conv2D, Flatten
    

  2. Models

    • 通过 SequentialFunctional 构建模型。
    from tensorflow.keras.models import Sequential, Model
    

  3. Optimizers

    • 提供多种优化器(如 SGD、Adam、RMSprop)。
    from tensorflow.keras.optimizers import Adam
    

  4. Losses

    • 支持分类、回归等常用损失函数。
    from tensorflow.keras.losses import SparseCategoricalCrossentropy
    

  5. Metrics

    • 用于评估模型性能的指标。
    from tensorflow.keras.metrics import Accuracy
    

  6. Callbacks

    • 提供灵活工具(如 EarlyStopping、ModelCheckpoint)监控训练过程。
    from tensorflow.keras.callbacks import EarlyStopping
    


Keras 的简单示例

以下是一个使用 Keras 构建和训练简单分类模型的示例:

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.datasets import mnist# 加载数据集
(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train, X_test = X_train / 255.0, X_test / 255.0# 构建模型
model = Sequential([Flatten(input_shape=(28, 28)),         # 展平输入Dense(128, activation='relu'),        # 全连接层Dense(10, activation='softmax')       # 输出层
])# 编译模型
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy']
)# 训练模型
model.fit(X_train, y_train, epochs=5, batch_size=32)# 测试模型
test_loss, test_acc = model.evaluate(X_test, y_test)
print(f"Test Accuracy: {test_acc:.2f}")

运行结果 

Epoch 1/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.2601 - accuracy: 0.9253
Epoch 2/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.1154 - accuracy: 0.9657
Epoch 3/5
1875/1875 [==============================] - 4s 2ms/step - loss: 0.0775 - accuracy: 0.9759
Epoch 4/5
1875/1875 [==============================] - 3s 1ms/step - loss: 0.0585 - accuracy: 0.9823
Epoch 5/5
1875/1875 [==============================] - 3s 1ms/step - loss: 0.0448 - accuracy: 0.9857
313/313 [==============================] - 0s 1ms/step - loss: 0.0784 - accuracy: 0.9761
Test Accuracy: 0.98


Keras 的高级功能

  1. 自定义层与模型

    • 子类化 tf.keras.layers.Layertf.keras.Model 来构建自定义功能。
    import tensorflow as tfclass CustomLayer(tf.keras.layers.Layer):def __init__(self, units=32, **kwargs):super().__init__(**kwargs)self.units = unitsdef build(self, input_shape):self.w = self.add_weight(shape=(input_shape[-1], self.units), initializer='random_normal', trainable=True)self.b = self.add_weight(shape=(self.units,), initializer='zeros', trainable=True)def call(self, inputs):return tf.matmul(inputs, self.w) + self.b
    

  2. 迁移学习与微调

    • 利用预训练模型(如 ResNet、BERT)进行迁移学习。
    from tensorflow.keras.applications import ResNet50base_model = ResNet50(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
    base_model.trainable = False
    

  3. Callbacks

    • 使用 EarlyStoppingTensorBoard 等工具跟踪训练过程。
  4. 分布式训练

    • 支持多 GPU 和 TPU 加速训练。

Keras 的应用领域

  1. 图像处理(如分类、目标检测、风格迁移)。
  2. 自然语言处理(如文本生成、翻译、情感分析)。
  3. 时间序列预测(如股票价格预测、天气预测)。
  4. 推荐系统(如个性化推荐)。

Keras 通过其简单、高效和模块化的设计,大大降低了深度学习模型开发的门槛,是机器学习研究和工业应用中的重要工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/6784.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis(5,jedis和spring)

在前面的学习中,只是学习了各种redis的操作,都是在redis命令行客户端操作的,手动执行的,更多的时候就是使用redis的api(),进一步操作redis程序。 在java中实现的redis客户端有很多,…

AAAI2024论文解读|HGPROMPT Bridging Homogeneous and Heterogeneous Graphs

论文标题 HGPROMPT: Bridging Homogeneous and Heterogeneous Graphs for Few-shot Prompt Learning 跨同构异构图的小样本提示学习 论文链接 HGPROMPT: Bridging Homogeneous and Heterogeneous Graphs for Few-shot Prompt Learning论文下载 论文作者 Xingtong Yu, Yuan…

闲鱼自动抓取/筛选/发送系统

可监控闲鱼最新发布商品,发送钉钉 1,精准关键词匹配:输入核心关键词,精准定位与之高度契合的信息,确保搜索结果直击要点,满足您对特定内容的急切需求。 2,标题关键词智能筛选:不仅着…

AI编程工具使用技巧:在Visual Studio Code中高效利用阿里云通义灵码

AI编程工具使用技巧:在Visual Studio Code中高效利用阿里云通义灵码 前言一、通义灵码介绍1.1 通义灵码简介1.2 主要功能1.3 版本选择1.4 支持环境 二、Visual Studio Code介绍1.1 VS Code简介1.2 主要特点 三、安装VsCode3.1下载VsCode3.2.安装VsCode3.3 打开VsCod…

【Unity3D】Unity混淆工具Obfuscator使用

目录 一、导入工具 二、各种混淆形式介绍 2.1 程序集混淆 2.2 命名空间混淆 2.3 类混淆 2.4 函数混淆 2.5 参数混淆 2.6 字段混淆 2.7 属性混淆 2.8 事件混淆 三、安全混淆 四、兼容性处理 4.1 动画方法兼容 4.2 GUI方法兼容 4.3 协程方法兼容 五、选项 5.1 调…

2024年终总结:技术成长与突破之路

文章目录 前言一、技术成长:菜鸟成长之路1. 学习与实践的结合2. 技术分享与社区交流 二、生活与事业的平衡:技术之外的思考1. 时间管理与效率提升2. 技术对生活的积极影响 三、突破与展望:未来之路1. 技术领域的突破2. 未来规划与目标 四、结…

计算机网络-运输层

重点内容: 运输层 是整个网络体系结构中的关键层次之一。一定要弄清以下一些重要概念: (1) 运输层为相互通信的应用进程提供逻辑通信。 (2) 端口和套接字的意义。 (3) 无连接的 UDP 的特点。 (4) 面向连接的 TCP 的特点。 (5) 在不可靠的网…

【Elasticsearch】inference ingest pipeline

Elasticsearch 的 Ingest Pipeline 功能允许你在数据索引之前对其进行预处理。通过使用 Ingest Pipeline,你可以执行各种数据转换和富化操作,包括使用机器学习模型进行推理(inference)。这在处理词嵌入、情感分析、图像识别等场景…

使用 .NET Core 6.0 Web API 上传单个和多个文件

示例代码: https://download.csdn.net/download/hefeng_aspnet/90138968 介绍 我们将在 IFormFile 接口和 .NET 提供的其他接口的帮助下,逐步讨论单个和多个文件上传。 .NET 提供了一个 IFormFile 接口,代表 HTTP 请求中传输的文件。 此外…

Ceisum无人机巡检直播视频投射

接上次的视频投影,Leader告诉我这个视频投影要用在两个地方,一个是我原先写的轨迹回放那里,另一个在无人机起飞后的地图回显,要实时播放无人机拍摄的视频,还要能转镜头,让我把这个也接一下。 我的天&#x…

Day21-【软考】短文,计算机网络开篇,OSI七层模型有哪些协议?

文章目录 OSI七层模型有哪些?有哪些协议簇?TCP/IP协议簇中的TCP协议三次握手是怎样的?基于UDP的DHCP协议是什么情况?基于UDP的DNS协议是什么情况? OSI七层模型有哪些? 题目会考广播域 有哪些协议簇&#x…

媒体新闻发稿要求有哪些?什么类型的稿件更好通过?

为了保证推送信息的内容质量,大型新闻媒体的审稿要求一向较为严格。尤其在商业推广的过程中,不少企业的宣传稿很难发布在这些大型新闻媒体平台上。 媒体新闻发稿要求有哪些?就让我们来了解下哪几类稿件更容易过审。 一、媒体新闻发稿要求有哪…

Flutter_学习记录_导航和其他

Flutter 的导航页面跳转,是通过组件Navigator 和 组件MaterialPageRoute来实现的,Navigator提供了很多个方法,但是目前,我只记录我学习过程中接触到的方法: Navigator.push(), 跳转下一个页面Navigator.pop(), 返回上一…

mathematical-expression 实现 数学表达式解析 Java 篇(最新版本)

mathematical-expression (MAE) 切换至 中文文档 Community QQ group 访问链接进行交流信息的获取:https://diskmirror.lingyuzhao.top/DiskMirrorBackEnd/FsCrud/downLoad/18/Binary?fileNameArticle/Image/-56202138/1734319937274.jpg…

http的请求体各项解析

一、前言 做Java开发的人员都知道,其实我们很多时候不单单在写Java程序。做的各种各样的系统,不管是PC的 还是移动端的,还是为别的系统提供接口。其实都离不开http协议或者https 这些东西。Java作为编程语言,再做业务开发时&#…

Java 大视界 -- Java 大数据中的自然语言生成技术与实践(63)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

计算机网络三张表(ARP表、MAC表、路由表)总结

参考: 网络三张表:ARP表, MAC表, 路由表,实现你的网络自由!!_mac表、arp表、路由表-CSDN博客 网络中的三张表:ARP表、MAC表、路由表 首先要明确一件事,如果一个主机要发送数据,那么必…

Git Bash 配置 zsh

博客食用更佳 博客链接 安装 zsh 安装 Zsh 安装 Oh-my-zsh github仓库 sh -c "$(curl -fsSL https://install.ohmyz.sh/)"让 zsh 成为 git bash 默认终端 vi ~/.bashrc写入: if [ -t 1 ]; thenexec zsh fisource ~/.bashrc再重启即可。 更换主题 …

【问题】Chrome安装不受支持的扩展 解决方案

此扩展程序已停用,因为它已不再受支持 Chromium 建议您移除它。详细了解受支持的扩展程序 此扩展程序已停用,因为它已不再受支持 详情移除 解决 1. 解压扩展 2.打开manifest.json 3.修改版本 将 manifest_version 改为3及以上 {"manifest_ver…

在 Windows 系统上,将 Ubuntu 从 C 盘 迁移到 D 盘

在 Windows 系统上,如果你使用的是 WSL(Windows Subsystem for Linux)并安装了 Ubuntu,你可以将 Ubuntu 从 C 盘 迁移到 D 盘。迁移过程涉及导出当前的 Ubuntu 发行版,然后将其导入到 D 盘的目标目录。以下是详细的步骤…