- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Keras中的两种模型:Sequential和Model用法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
在Keras中有两种深度学习的模型:序列模型(Sequential)和通用模型(Model)。差异在于不同的拓扑结构.
序列模型 Sequential 。
序列模型各层之间是依次顺序的线性关系,模型结构通过一个列表来制定.
1
2
3
4
5
6
7
8
9
|
from
keras.models
import
Sequential
from
keras.layers
import
Dense, Activation
layers
=
[Dense(
32
, input_shape
=
(
784
,)),
Activation(
'relu'
),
Dense(
10
),
Activation(
'softmax'
)]
model
=
Sequential(layers)
|
或者逐层添加网络结构 。
1
2
3
4
5
6
7
8
|
from
keras.models
import
Sequential
from
keras.layers
import
Dense, Activation
model
=
Sequential()
model.add(Dense(
32
, input_shape
=
(
784
,)))
model.add(Activation(
'relu'
))
model.add(Dense(
10
))
model.add(Activation(
'softmax'
))
|
通用模型Model 。
通用模型可以设计非常复杂、任意拓扑结构的神经网络,例如有向无环网络、共享层网络等。相比于序列模型只能依次线性逐层添加,通用模型能够比较灵活地构造网络结构,设定各层级的关系.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
from
keras.layers
import
Input
, Dense
from
keras.models
import
Model
# 定义输入层,确定输入维度
input
=
input
(shape
=
(
784
, ))
# 2个隐含层,每个都有64个神经元,使用relu激活函数,且由上一层作为参数
x
=
Dense(
64
, activation
=
'relu'
)(
input
)
x
=
Dense(
64
, activation
=
'relu'
)(x)
# 输出层
y
=
Dense(
10
, activation
=
'softmax'
)(x)
# 定义模型,指定输入输出
model
=
Model(
input
=
input
, output
=
y)
# 编译模型,指定优化器,损失函数,度量
model.
compile
(optimizer
=
'rmsprop'
, loss
=
'categorical_crossentropy'
, metrics
=
[
'accuracy'
])
# 模型拟合,即训练
model.fit(data, labels)
|
补充知识:keras神经网络,Sequential序贯模型(二分类、多分类) 。
1 Sequential参数 。
model = Sequential() model.add(Dense(32, input_dim=78)) 。
解释:
Sequential 的第一个关于输入数据shape的参数,后边的各个层则可以自动推到出中间数据的shape 。
01 传递一个input_shape的关键字参数给第一层,如果填入None则表示此位置可能是任何正整数。数据的batch大小不应包含在其中.
02 有些2D层,如Dense,支持通过指定其输入维度input_dim来隐含的指定输入数据shape,是一个Int类型的数据。一些3D的时域层支持通过参数input_dim和input_length来指定输入shape.
03 如果你需要为输入指定一个固定大小的batch_size(常用于stateful RNN网络),可以传递batch_size参数到一个层中,例如你想指定输入张量的batch大小是32,数据shape是(6,8),则你需要传递batch_size=32和input_shape=(6,8).
2、compile配置学习过程 。
model.compile(optimizer='rmspropy',loss='categorical_crossentropy',metrics=['accuracy']) 。
01 优化器optimizer:
该参数可指定为已预定义的优化器名,如rmsprop、adagrad,或一个Optimizer类的对象.
02 损失函数loss:
该参数为模型试图最小化的目标函数,它可为预定义的损失函数名,如categorical_crossentropy、mse,也可以为一个损失函数.
03 指标列表metrics:
对分类问题,我们一般将该列表设置为metrics=['accuracy']。指标可以是一个预定义指标的名字,也可以是一个用户定制的函数.指标函数应该返回单个张量,或一个完成metric_name - > metric_value映射的字典. 。
3、案例 。
01 基于多层感知器Softmax多分类(图片) 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
from
keras.models
import
Sequential
from
keras.layers
import
Dense,Dropout,Activation
from
keras.optimizers
import
SGD
import
keras
#abd
# Generate dummy data
import
numpy as np
x_train
=
np.random.random((
1000
,
20
))
y_train
=
keras.utils.to_categorical(np.random.randint(
10
,size
=
(
1000
,
1
)),num_classes
=
10
)
x_test
=
np.random.random((
100
,
20
))
y_test
=
keras.utils.to_categorical(np.random.randint(
10
,size
=
(
100
,
1
)),num_classes
=
10
)
model
=
Sequential()
# Dense(64) is a fully-connected Layer with 64 hidden units.
# in the first layer ,you must specify the expected input data shape;
# here,20-dimensional vectors.
model.add(Dense(
64
,activation
=
'relu'
,input_dim
=
20
))
model.add(Dropout(
0.5
))
model.add(Dense(
64
,activation
=
'relu'
))
model.add(Dropout(
0.5
))
model.add(Dense(
10
,activation
=
'softmax'
))
sgd
=
SGD(lr
=
0.01
,decay
=
1e
-
6
,momentum
=
0.9
,nesterov
=
True
)
model.
compile
(loss
=
'categorical_crossentropy'
,
# 损失函数
optimizer
=
sgd,
#
metrics
=
[
'accuracy'
]
# 精确度,评估模型在训练和测试时的网络性能的指标。
)
model.fit(x_train,y_train,epochs
=
20
,batch_size
=
128
)
# batch_size 整数,指定进行梯度下降时每个批次包含的样本数训练时一个批次的样本
# 会被计算一次梯度下降,使目标函数进行一步优化
# epochs;训练20次,整数,训练终止时候的epoch值
score
=
model.evaluate(x_test,y_test,batch_size
=
128
)
# 评估函数 ,本函数返回一个测试误差的标量值(如果模型没有其他评价指标)。
|
02 MLP的二分类 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
import
numpy as np
from
keras.models
import
Sequential
from
keras.layers
import
Dense,Dropout
x_train
=
np.random.random((
1000
,
20
))
y_train
=
keras.utils.to_categorical(np.random.randint(
10
,size
=
(
1000
,
1
)),num_classes
=
10
)
x_test
=
np.random.random((
100
,
20
))
y_test
=
keras.utils.to_categorical(np.random.randint(
10
,size
=
(
100
,
1
)),num_classes
=
10
)
model
=
Sequential()
model.add(Dense(
64
,input_dim
=
20
,activation
=
'relu'
))
model.add(Dropout(
0.5
))
model.add(Dense(
64
,activation
=
'relu'
))
model.add(Dropout(
0.5
))
model.add(Dense(
1
,activation
=
'sigmoid'
))
model.
compile
(loss
=
'binary_crossentropy'
,
optimizer
=
'rmsprop'
,
metrics
=
[
'accuracy'
])
model.fit(x_train,y_train,
epoches
=
20
,
batch_size
=
128
)
score
=
model.evaluate(x_test,y_test,batch_size
=
128
)
|
相关详细说明见官方文档:https://keras-cn.readthedocs.io/en/latest/getting_started/sequential_model/ 。
以上这篇Keras中的两种模型:Sequential和Model用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/weixin_39916966/article/details/88049179 。
最后此篇关于Keras中的两种模型:Sequential和Model用法的文章就讲到这里了,如果你想了解更多关于Keras中的两种模型:Sequential和Model用法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我对 mongoosejs 中模型的使用感到有些困惑。 可以通过这些方式使用 mongoose 创建模型 使用 Mongoose var mongoose = require('mongoose');
我正在看 from django.db import models class Publisher(models.Model): name = models.CharField(max_len
我有自己的 html 帮助器扩展,我用这种方式 model.Reason_ID, Register.PurchaseReason) %> 这样声明的。 public static MvcHtmlS
假设模型原本是存储在CPU上的,然后我想把它移到GPU0上,那么我可以这样做: device = torch.device('cuda:0') model = model.to(device) # o
我过去读过一些关于模型的 MVC 建议,指出不应为域和 View 重用相同的模型对象;但我找不到任何人愿意讨论为什么这很糟糕。 我认为创建两个单独的模型 - 一个用于域,一个用于 View - 然后在
我正在使用pytorch构建一个像VGG16这样的简单模型,并且我已经重载了函数forward在我的模型中。 我发现每个人都倾向于使用 model(input)得到输出而不是 model.forwar
tf.keras API 中的 models 是否多余?对于某些情况,即使不使用 models,代码也能正常运行。 keras.models.sequential 和 keras.sequential
当我尝试使用 docker 镜像运行 docker 容器时遇到问题:tensorflow/serving。 我运行命令: docker run --name=tf_serving -it tensor
我有一个模型,我用管道注册了它: register_step = PythonScriptStep(name = "Register Model",
如果 View 需要访问模型中的数据,您是否认为 Controller 应: a)将模型传递给 View b)将模型的数据传递给 View c)都不;这不应该是 Controller 所关心的。让 V
我正在寻找一个可以在模型中定义的字段,该字段本质上是一个列表,因为它将用于存储多个字符串值。显然CharField不能使用。 最佳答案 您正在描述一种多对一的关系。这应该通过一个额外的 Model 进
我最近了解了 Django 中的模型继承。我使用很棒的包 django-model-utils 取得了巨大的成功。我继承自 TimeStampedModel 和 SoftDeletableModel。
我正在使用基于 resnet50 的双输出模型进行项目。一个输出用于回归任务,第二个输出用于分类任务。 我的主要问题是关于模型评估。在训练期间,我在验证集的两个输出上都取得了不错的结果: - 综合损失
我是keras的新手。现在,我将使用我使用 model.fit_generator 训练的模型来预测测试图像组。我可以使用 model.predict 吗?不确定如何使用model.predict_g
在 MVC 应用程序中,我加入了多个表并将其从 Controller 返回到 View,如下所示: | EmployeeID | ControlID | DoorAddress | DoorID |
我在使用 sails-cassandra 连接系统的 Sails 中有一个 Data 模型。数据。 Data.count({...}).exec() 返回 1,但 Data.find({...}).e
我正在使用 PrimeFaces dataTable 开发一个 jsf 页面来显示用户列表。用户存储在 Model.User 类的对象中。
我正在关注https://www.tensorflow.org/tutorials/keras/basic_classification解决 Kaggle 挑战。 但是,我不明白应该将什么样的数据输入
我是这个领域的新手。那么,你们能帮忙如何为 CNN 创建 .config 文件吗? 传递有关如何执行此操作的文档或教程将对我有很大帮助。谢谢大家。 最佳答案 这个问题对我来说没有多大意义,因为 .co
我是“物理系统建模”主题的新手。我阅读了一些基础文献,并在 Modelica 和 Simulink/Simscape 中做了一些教程。我想问你,如果我对以下内容理解正确: 符号操作是将微分代数方程组(
我是一名优秀的程序员,十分优秀!