深度学习之keras

一、Keras 是一个用于构建和训练深度学习模型的高级 API,

它能够运行在 TensorFlow、Theano 或 CNTK(Microsoft-developed Computational Network Toolkit)之上。不过,自 Keras 被 TensorFlow 团队接纳并作为 TensorFlow 的高级 API 之后,现在 Keras 主要与 TensorFlow 紧密集成,并且推荐使用 TensorFlow 作为其后端。

(PS: 不用TensorFlow也可以使用Keras。虽然Keras最初是作为TensorFlow的高级API开发的,并且现在与TensorFlow紧密集成,但Keras本身是一个独立的库,也可以作为其他深度学习框架的前端来使用。)

二、以下是一个简单的 Keras 代码示例,用于构建和训练一个简单的多层感知机(MLP)模型。

这个示例将使用 Keras 的 Sequential API,并包括数据加载、模型构建、编译、训练和评估的步骤。

1. 导入必要的库

首先,我们需要导入一些必要的库,包括 Keras、NumPy(用于数据处理)和可能的数据加载库(这里我们假设数据集已经被加载并预处理过了)。

import numpy as np  
from keras.models import Sequential  
from keras.layers import Dense  
from sklearn.model_selection import train_test_split  
from sklearn.datasets import load_iris  # 示例中我们将使用鸢尾花数据集

2. 加载和预处理数据

这里我们使用 sklearn 的鸢尾花数据集作为示例。在实际应用中,你可能需要加载和预处理自己的数据集。

# 加载鸢尾花数据集  
iris = load_iris()  
X = iris.data  
y = iris.target  
  
# 将类别标签编码为 one-hot 编码(对于多分类问题)  
from keras.utils import to_categorical  
y_cat = to_categorical(y)  
  
# 划分训练集和测试集  
X_train, X_test, y_train, y_test = train_test_split(X, y_cat, test_size=0.2, random_state=42)

3. 构建模型

接下来,我们使用 Keras 的 Sequential API 来构建模型。在这个例子中,我们将构建一个包含两个隐藏层(每个隐藏层有 10 个神经元)和一个输出层的 MLP 模型。

# 定义模型  
model = Sequential()  
model.add(Dense(10, input_dim=4, activation='relu'))  # 输入层有 4 个特征  
model.add(Dense(10, activation='relu'))  # 第一个隐藏层  
model.add(Dense(3, activation='softmax'))  # 输出层,使用 softmax 激活函数进行多分类

4. 编译模型

在训练模型之前,我们需要使用 compile() 方法来配置训练过程。这包括选择优化器、损失函数和评估指标。

# 编译模型  
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

5. 训练模型

现在我们可以使用 fit() 方法来训练模型了。我们需要指定训练数据、批次大小、训练轮数等参数。

# 训练模型  
model.fit(X_train, y_train, epochs=100, batch_size=10)

6. 评估模型

最后,我们可以使用 evaluate() 方法来评估模型在测试集上的性能。

# 评估模型  
loss, accuracy = model.evaluate(X_test, y_test)  
print(f'Test loss: {loss:.4f}')  
print(f'Test accuracy: {accuracy:.4f}')

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值