介绍 Keras

本文是Keras的入门介绍,通过实例展示了如何使用Keras创建和训练单层、多层神经网络,以及用于二进制分类、多类分类和回归任务的模型。Keras提供了快速构建和实验模型的能力,支持CPU和GPU计算,适用于快速原型设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章向读者介绍Keras,它是一个功能强大、内容抽象的图书馆。              构建深度学习网络的基础。Keras提供的构建块使用              (前面已经介绍)以及张量流(它是用于构建计算的              图形、自动导出渐变等)。keras同时支持CPU和GPU计算,是一个              快速原型化想法的好工具。              我们将介绍Keras提供的一些关键构建块,然后构建CNN和LSTM              使用KRAS。              让我们从一个简单的单层神经网络开始。清单7-1提供了代码和图7-1              给出了计算图。应注意以下几点:

1。模型是使用顺序结构定义的,它允许用户              添加/配置层。              

2。使用此功能,用户可以添加一个或多个层并构建网络。              致密层基本上是一个完全连接的层(导致矢量矩阵或              向量向量积),我们之前已经看到过。            

3。当第一层              定义。在这种情况下,模型将采用维数为500的输入,并且              生成维度1的输出。              

4。在这一层之后,我们添加了一个激活函数,在本例中是一个乙状结肠。            

 5。一旦定义了模型,就需要显式编译,此时,我们              提供损失函数、优化算法和我们需要的其他指标              计算。              

6。考虑到手头的任务,需要选择适当的损失函数;在此              如果我们有一个二进制分类问题,我们选择二进制              

交叉熵              

7。需要选择适当的优化算法,这通常是              随机梯度下降的变化(在后面的章节中包含)。            

 8。编译后,我们可以通过提供数据和评估模型来适应模型。 

import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Activation
from keras.utils.visualize_util import plot
model = Sequential()
model.add(Dense(1, input_dim=500))
model.add(Activation(activation='sigmoid'))
model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy'])
data = np.random.random((1000, 500))
labels = np.random.randint(2, size=(1000, 1))
score = model.evaluate(data,labels, verbose=0)
print "Before Training:", zip(model.metrics_names, score)
model.fit(data, labels, nb_epoch=10, batch_size=32, verbose=0)
score = model.evaluate(data,labels, verbose=0)
print "After Training:", zip(model.metrics_names, score)
plot(model, to_file='s1.png', show_shapes=True)
# Before Training: [('loss', 0.76832762384414677), ('acc', 0.50700000000000001)]
# After Training: [('loss', 0.67270196056365972), ('acc', 0.56299999999999994)]


Figure 7-1. Single Layer Neural Network (Binary Classification)

import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Activation
from keras.utils.visualize_util import plot
model = Sequential()
model.add(Dense(32, input_dim=500))
model.add(Activation(activation='sigmoid'))
model.add(Dense(1))
model.add(Activation(activation='sigmoid'))
model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy'])
data = np.random.random((1000, 500))
labels = np.random.randint(2, size=(1000, 1))
score = model.evaluate(data,labels, verbose=0)
print "Before Training:", zip(model.metrics_names, score)
model.fit(data, labels, nb_epoch=10, batch_size=32, verbose=0)
score = model.evaluate(data,labels, verbose=0)
print "After Training:", zip(model.metrics_names, score)
plot(model, to_file='s2.png', show_shapes=True)
# Before Training: [('loss', 0.73012506151199341), ('acc', 0.51200000000000001)]
# After Training: [('loss', 0.6588478517532349), ('acc', 0.52700000000000002)]

现在让我们来看一个两层的神经网络。清单7-2提供了代码,图7-2给出了              计算图。应注意以下几点:            

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值