浅谈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 相关文章推荐
pyqt4教程之messagebox使用示例分享
Mar 07 Python
Python字符串转换成浮点数函数分享
Jul 24 Python
Python实现判断并移除列表指定位置元素的方法
Apr 13 Python
使用Flask集成bootstrap的方法
Jul 24 Python
Python 经典面试题 21 道【不可错过】
Sep 21 Python
使用python获取电脑的磁盘信息方法
Nov 01 Python
Python将列表数据写入文件(txt, csv,excel)
Apr 03 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
May 10 Python
详解程序意外中断自动重启shell脚本(以Python为例)
Jul 26 Python
pytorch如何冻结某层参数的实现
Jan 10 Python
Python如何使用正则表达式爬取京东商品信息
Jun 01 Python
python 爬虫爬取京东ps4售卖情况
Dec 18 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边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
Yii的Srbac插件用法详解
2016/07/14 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
PHP vsprintf()函数格式化字符串操作原理解析
2020/07/14 PHP
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
JavaScript写的一个自定义弹出式对话框代码
2010/01/17 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
微信小程序 wxapp画布 canvas详细介绍
2016/10/31 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
vue 1.x 交互实现仿百度下拉列表示例
2017/10/21 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
使用express获取微信小程序二维码小记
2019/05/21 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
js实现简单的秒表
2020/01/16 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
python黑魔法之编码转换
2016/01/25 Python
Python2/3中urllib库的一些常见用法
2017/12/19 Python
Python2.7+pytesser实现简单验证码的识别方法
2017/12/29 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
python绘制彩虹图
2019/12/16 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
2020/02/18 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
日期和时间问题
2015/01/04 面试题
生产部岗位职责范文
2014/02/07 职场文书
销售目标责任书
2014/07/23 职场文书
2014年评职称工作总结
2014/11/20 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫