浅谈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编程语言的35个与众不同之处(语言特征和使用技巧)
Jul 07 Python
python进程类subprocess的一些操作方法例子
Nov 22 Python
Python编程中的文件读写及相关的文件对象方法讲解
Jan 19 Python
python与C互相调用的方法详解
Jul 14 Python
使用python进行拆分大文件的方法
Dec 10 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
Python字符串内置函数功能与用法总结
Apr 16 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
python 判断字符串中是否含有汉字或非汉字的实例
Jul 15 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
Mar 19 Python
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
Jun 05 Python
Python加密与解密模块hashlib与hmac
Jun 05 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中的ini配置原理详解
2014/10/14 PHP
php生成curl命令行的方法
2015/12/14 PHP
如何打开php的gd2库
2017/02/09 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
Vue的移动端多图上传插件vue-easy-uploader的示例代码
2017/11/27 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
Python实现截屏的函数
2015/07/25 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
python opencv 批量改变图片的尺寸大小的方法
2019/06/28 Python
Python中PyQt5/PySide2的按钮控件使用实例
2019/08/17 Python
Python生成随机验证码代码实例解析
2020/06/09 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
python中操作文件的模块的方法总结
2021/02/04 Python
linux面试题参考答案(8)
2015/08/11 面试题
交通安全教育制度
2014/02/02 职场文书
倡议书范文
2014/04/16 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
一年级小学生评语大全
2014/12/25 职场文书
齐云山导游词
2015/02/06 职场文书
个人廉洁自律总结
2015/03/06 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
2016元旦文艺汇演主持词
2015/07/06 职场文书