浅谈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编写android截屏脚本双击运行即可
Jul 21 Python
基于python内置函数与匿名函数详解
Jan 09 Python
详解python字节码
Feb 07 Python
python使用TensorFlow进行图像处理的方法
Feb 28 Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 Python
python实现在多维数组中挑选符合条件的全部元素
Nov 26 Python
python实现飞行棋游戏
Feb 05 Python
django 前端页面如何实现显示前N条数据
Mar 16 Python
keras实现theano和tensorflow训练的模型相互转换
Jun 19 Python
Python如何配置环境变量详解
May 18 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 Python
Python如何加载模型并查看网络
Jul 15 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后台程序与Javascript的两种交互方式
2009/10/25 PHP
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
php多任务程序实例解析
2014/07/19 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
Dom操作之兼容技巧分享
2011/09/20 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
JS获取IP、MAC和主机名的五种方法
2013/11/14 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
JavaScript驾驭网页-CSS与DOM
2016/03/24 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
详解redux异步操作实践
2018/08/15 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
js new Date()实例测试
2019/10/31 Javascript
js实现盒子拖拽动画效果
2020/08/09 Javascript
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
Python常用的爬虫技巧总结
2016/03/28 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
Django框架模板用法入门教程
2019/11/04 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
Django 解决由save方法引发的错误
2020/05/21 Python
PyTorch 导数应用的使用教程
2020/08/31 Python
Paul Smith英国官网:英国国宝级时装品牌
2019/03/21 全球购物
高分子材料与工程专业个人求职信
2013/12/15 职场文书
执行总经理岗位职责
2014/02/03 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
vue实现滑动解锁功能
2022/03/03 Vue.js
JAVA springCloud项目搭建流程
2022/05/11 Java/Android
利用Java连接Hadoop进行编程
2022/06/28 Java/Android