浅谈Keras的Sequential与PyTorch的Sequential的区别


Posted in Python onJune 17, 2020

深度学习库Keras中的Sequential是多个网络层的线性堆叠,在实现AlexNet与VGG等网络方面比较容易,因为它们没有ResNet那样的shortcut连接。在Keras中要实现ResNet网络则需要Model模型。

下面是Keras的Sequential具体示例:

可以通过向Sequential模型传递一个layer的list来构造该模型:

from keras.models import Sequential
from keras.layers import Dense, Activation
 
model = Sequential([
Dense(32, input_dim=784),
Activation('relu'),
Dense(10),
Activation('softmax'),
])

也可以通过.add()方法一个个的将layer加入模型中:

model = Sequential()
model.add(Dense(32, input_dim=784))
model.add(Activation('relu'))

Keras可以通过泛型模型(Model)实现复杂的网络,如ResNet,Inception等,具体示例如下:

from keras.layers import Input, Dense
from keras.models import Model
 
# this returns a tensor
inputs = Input(shape=(784,))
 
# a layer instance is callable on a tensor, and returns a tensor
x = Dense(64, activation='relu')(inputs)
x = Dense(64, activation='relu')(x)
predictions = Dense(10, activation='softmax')(x)
 
# this creates a model that includes
# the Input layer and three Dense layers
model = Model(input=inputs, output=predictions)
 
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',
metrics=['accuracy'])
 
model.fit(data, labels) # starts training

在目前的PyTorch版本中,可以仅通过Sequential实现线性模型和复杂的网络模型。PyTorch中的Sequential具体示例如下:

model = torch.nn.Sequential(
 torch.nn.Linear(D_in, H),
 torch.nn.ReLU(),
 torch.nn.Linear(H, D_out),
)

也可以通过.add_module()方法一个个的将layer加入模型中:

layer1 = nn.Sequential()
layer1.add_module('conv1', nn.Conv2d(3, 32, 3, 1, padding=1))
layer1.add_module('relu1', nn.ReLU(True))
layer1.add_module('pool1', nn.MaxPool2d(2, 2))

由上可以看出,PyTorch创建网络的方法与Keras类似,PyTorch借鉴了Keras的一些优点。

以上这篇浅谈Keras的Sequential与PyTorch的Sequential的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python批量修改文件后缀示例代码分享
Dec 24 Python
Python、Javascript中的闭包比较
Feb 04 Python
python实现向ppt文件里插入新幻灯片页面的方法
Apr 28 Python
Python处理字符串之isspace()方法的使用
May 19 Python
python数组复制拷贝的实现方法
Jun 09 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
Oct 29 Python
使用pandas的DataFrame的plot方法绘制图像的实例
May 24 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
python openCV获取人脸部分并存储功能
Aug 28 Python
python二元表达式用法
Dec 04 Python
关于Python字符串显示u...的解决方式
Mar 06 Python
python爬虫---requests库的用法详解
Sep 28 Python
Keras之fit_generator与train_on_batch用法
Jun 17 #Python
基于Keras的格式化输出Loss实现方式
Jun 17 #Python
Tensorflow之MNIST CNN实现并保存、加载模型
Jun 17 #Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 #Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
Jun 17 #Python
Java如何基于wsimport调用wcf接口
Jun 17 #Python
使用keras内置的模型进行图片预测实例
Jun 17 #Python
You might like
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
再推荐十款免费的php开发工具
2015/11/09 PHP
功能强大的php文件上传类
2016/08/29 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
JavaScript数组合并的多种方法
2016/05/22 Javascript
完美实现八种js焦点轮播图(上篇)
2016/07/18 Javascript
浅谈Cookie的生命周期问题
2016/08/02 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
nodejs基础应用
2017/02/03 NodeJs
详谈jQuery Ajax(load,post,get,ajax)的用法
2017/03/02 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
Vue仿手机qq的实例代码(demo)
2017/09/08 Javascript
Mac 安装 nodejs方法(图文详细步骤)
2017/10/30 NodeJs
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
vue-loader中引入模板预处理器的实现
2019/09/04 Javascript
vue实现评论列表功能
2019/10/25 Javascript
Python collections模块实例讲解
2014/04/07 Python
Python正则表达式的使用范例详解
2014/08/08 Python
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
python对日志进行处理的实例代码
2018/10/06 Python
Python配置文件处理的方法教程
2019/08/29 Python
使用python+whoosh实现全文检索
2019/12/09 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
如何将PySpark导入Python的放实现(2种)
2020/04/26 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
三年级数学教学反思
2014/01/31 职场文书
大学入学感言
2015/08/01 职场文书
一年级下册数学教学反思
2016/02/16 职场文书