浅谈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入门篇之面向对象
Oct 20 Python
python使用win32com库播放mp3文件的方法
May 30 Python
Python中操作符重载用法分析
Apr 29 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
Jan 31 Python
Python实现的求解最小公倍数算法示例
May 03 Python
flask入门之表单的实现
Jul 18 Python
利用nohup来开启python文件的方法
Jan 14 Python
CentOS7安装Python3的教程详解
Apr 10 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
详解Python图像处理库Pillow常用使用方法
Sep 02 Python
python合并多个excel文件的示例
Sep 23 Python
如何使用python写截屏小工具
Sep 29 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
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
两种php调用Java对象的方法
2006/10/09 PHP
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
php 面向对象的一个例子
2011/04/12 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
2012/04/09 PHP
PHP之生成GIF动画的实现方法
2013/06/07 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
nodejs中密码加密处理操作详解
2018/03/20 NodeJs
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
2019/07/25 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
2019/12/06 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
[01:44]剑指西雅图 展望TI之CIS战队专访
2014/06/25 DOTA
python cookielib 登录人人网的实现代码
2012/12/19 Python
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
python判断变量是否为列表的方法
2020/09/17 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
企业为何需要商业计划书
2013/12/26 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
创建无烟单位实施方案
2014/03/29 职场文书
甘南现象心得体会
2014/09/11 职场文书
争先创优个人总结
2015/03/04 职场文书
会议简讯范文
2015/07/20 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL