浅谈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 获取et和excel的版本号
Apr 09 Python
python实现音乐下载的统计
Jun 20 Python
Python使用logging模块实现打印log到指定文件的方法
Sep 05 Python
django2.0扩展用户字段示例
Feb 13 Python
Python+PyQt5实现美剧爬虫可视工具的方法
Apr 25 Python
Django 重写用户模型的实现
Jul 29 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
Mar 06 Python
python使用建议与技巧分享(二)
Aug 17 Python
Pycharm常用快捷键总结及配置方法
Nov 14 Python
python tqdm用法及实例详解
Jun 16 Python
详解Python为什么不用设计模式
Jun 24 Python
Python FuzzyWuzzy实现模糊匹配
Apr 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获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
ThinkPHP的I方法使用详解
2014/06/18 PHP
php递归删除指定文件夹的方法小结
2015/04/20 PHP
微信支付开发订单查询实例
2016/07/12 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
在网页中控制wmplayer播放器
2006/07/01 Javascript
img的onload的另类用法
2008/01/10 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
AngualrJS中的Directive制作一个菜单
2016/01/26 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
Bootstrap学习笔记之css样式设计(1)
2016/06/07 Javascript
javascript中的 object 和 function小结
2016/08/14 Javascript
Angular2库初探
2017/03/01 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
javascript中的面向对象
2017/03/30 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
JavaScript中.min.js和.js文件的区别讲解
2019/02/13 Javascript
使用webpack构建应用的方法步骤
2019/03/04 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
python ansible服务及剧本编写
2017/12/29 Python
Python实现的对一个数进行因式分解操作示例
2019/06/27 Python
django云端留言板实例详解
2019/07/22 Python
Python 实现数组相减示例
2019/12/27 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
HTML5标签大全
2016/11/23 HTML / CSS
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
Linux文件系统类型
2012/02/15 面试题
软件测试笔试题
2012/10/25 面试题
简单通用的简历自我评价
2014/09/21 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
小学国庆节活动总结
2015/03/23 职场文书
如何用Node.js编写内存效率高的应用程序
2021/04/30 Javascript
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis