浅谈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正则表达式的使用范例详解
Aug 08 Python
python解析xml文件操作实例
Oct 05 Python
初步讲解Python中的元组概念
May 21 Python
python用10行代码实现对黄色图片的检测功能
Aug 10 Python
Python教程之全局变量用法
Jun 27 Python
python执行使用shell命令方法分享
Nov 08 Python
Python字典创建 遍历 添加等实用基础操作技巧
Sep 13 Python
Python SMTP发送邮件遇到的一些问题及解决办法
Oct 24 Python
Python3实现定时任务的四种方式
Jun 03 Python
python3 mmh3安装及使用方法
Oct 09 Python
Python模拟伯努利试验和二项分布代码实例
May 27 Python
聊聊pytorch测试的时候为何要加上model.eval()
May 23 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 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
表单内同名元素的控制
2006/11/22 Javascript
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
jquery实现漂亮的二级下拉菜单代码
2015/08/26 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
2016/07/06 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
layui 实现自动选择radio单选框(checked)的方法
2019/09/03 Javascript
Python生成随机验证码的两种方法
2015/12/22 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
用Python shell简化开发
2018/08/08 Python
浅谈python编译pyc工程--导包问题解决
2019/03/20 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
python中调试或排错的五种方法示例
2019/09/12 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
Otticanet意大利:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
教师个人的自我评价分享
2014/01/02 职场文书
电子专业自荐信
2014/07/01 职场文书
2015年银行员工工作总结
2015/04/24 职场文书
十八大观后感
2015/06/12 职场文书
2016感恩父亲节主题广播稿
2015/12/18 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
Fluentd搭建日志收集服务
2022/09/23 Servers