浅谈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中使用 Selenium 实现网页截图实例
Jul 18 Python
Python实现Linux下守护进程的编写方法
Aug 22 Python
对于Python的Django框架使用的一些实用建议
Apr 03 Python
简介二分查找算法与相关的Python实现示例
Aug 26 Python
python3爬虫怎样构建请求header
Dec 23 Python
对Xpath 获取子标签下所有文本的方法详解
Jan 02 Python
在Python中如何传递任意数量的实参的示例代码
Mar 21 Python
python实现五子棋游戏
Jun 18 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
Oct 12 Python
Python json读写方式和字典相互转化
Apr 18 Python
python中redis包操作数据库的教程
Apr 19 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 常用字符串函数总结
2008/03/15 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
详解yii2实现分库分表的方案与思路
2017/02/03 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
Git命令之分支详解
2021/03/02 PHP
Dojo 学习笔记入门篇 First Dojo Example
2009/11/15 Javascript
JQUERY对单选框(radio)操作的小例子
2013/04/25 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
原生javascript实现图片放大镜效果
2017/01/18 Javascript
使用jQuery.Pin垂直滚动时固定导航
2017/05/24 jQuery
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python中的index()方法使用教程
2015/05/18 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
Python 去除字符串中指定字符串
2020/03/05 Python
KOHLER科勒美国官网:国际著名卫浴橱柜领先品牌
2020/06/27 全球购物
Linux常见面试题
2013/03/18 面试题
中科软笔试题和面试题
2014/10/07 面试题
2014年人力资源工作总结
2014/11/19 职场文书
海上钢琴师观后感
2015/06/03 职场文书
职工食堂管理制度
2015/08/06 职场文书
如何用JS实现简单的数据监听
2021/05/06 Javascript