keras slice layer 层实现方式


Posted in Python onJune 11, 2020

注意的地方: keras中每层的输入输出的tensor是张量, 比如Tensor shape是(N, H, W, C), 对于tf后台, channels_last

Define a slice layer using Lamda layer
def slice(x, h1, h2, w1, w2):
 """ Define a tensor slice function
 """
 return x[:, h1:h2, w1:w2, :]

定义完slice function之后,利用lambda layer添加到定义的网络中去

# Add slice layer
slice_1 = Lambda(slice, arguments={'h1': 0, 'h2': 6, 'w1': 0, 'w2': 6})(sliced)
# As for tensorfow backend, Lambda doesn't need output shape argument
slice_2 = Lambda(slice, arguments={'h1': 0, 'h2': 6, 'w1': 6, 'w2': 12})(sliced)

补充知识:tensorflow和keras张量切片(slice)

Notes

想将一个向量keras slice layer 层实现方式 分割成两部分:keras slice layer 层实现方式 操作大概是:

keras slice layer 层实现方式

在 TensorFlow 中,用 tf.slice 实现张量切片,Keras 中自定义 Lambda 层实现。

TensorFlow

tf.slice(input_, begin, size, name=None)

input_:tf.tensor,被操作的 tensor

begin:list,各个维度的开始下标

size:list,各个维度上要截多长

import tensorflow as tf

with tf.Session() as sess:
 a = tf.constant([1, 2, 3, 4, 5])
 b = tf.slice(a, [0], [2]) # 第一个维度从 0 开始,截 2 个
 c = tf.slice(a, [2], [3]) # 第一个维度从 2 开始,截 3 个
 print(a.eval())
 print(b.eval())
 print(c.eval())

输出

[1 2 3 4 5]
[1 2]
[3 4 5]

Keras

from keras.layers import Lambda
from keras.models import Sequential
import numpy as np

a = np.array([[1, 2, 3, 4, 5]])
model = Sequential([
 Lambda(lambda a: a[:, :2], input_shape=[5]) # 第二维截前 2 个
])

print(model.predict(a))

输出

[[1. 2.]]

以上这篇keras slice layer 层实现方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
TF-IDF算法解析与Python实现方法详解
Nov 16 Python
利用python解决mysql视图导入导出依赖的问题
Dec 17 Python
Python实现通讯录功能
Feb 22 Python
解决python 无法加载downsample模型的问题
Oct 25 Python
Python实用工具FuckIt.py介绍
Jul 02 Python
Django的用户模块与权限系统的示例代码
Jul 24 Python
python批量将excel内容进行翻译写入功能
Oct 10 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
如何更改 pandas dataframe 中两列的位置
Dec 27 Python
opencv python Canny边缘提取实现过程解析
Feb 03 Python
python实现图像拼接
Mar 05 Python
python中pop()函数的语法与实例
Dec 01 Python
Spring http服务远程调用实现过程解析
Jun 11 #Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
Jun 11 #Python
python怎么提高计算速度
Jun 11 #Python
Python 实现自动登录+点击+滑动验证功能
Jun 10 #Python
Python函数参数定义及传递方式解析
Jun 10 #Python
什么是python类属性
Jun 10 #Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
Jun 10 #Python
You might like
PHP中对数据库操作的封装
2006/10/09 PHP
PHP读取MySQL数据代码
2008/06/05 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
2016/12/07 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
js自定义事件代码说明
2011/01/31 Javascript
将文本输入框内容加入表中的js代码
2013/08/18 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
2016/09/30 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
Vue中的Vux配置指南
2017/12/08 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
详解Vue前端生产环境发布配置实战篇
2019/05/07 Javascript
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
Python正则表达式经典入门教程
2017/05/22 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
Python list与NumPy array 区分详解
2019/11/06 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
2014/12/12 面试题
《找不到快乐的波斯猫》教学反思
2014/02/24 职场文书
气象学专业个人求职信
2014/03/15 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
UNION CREATIVE《Re:从零开始的异世界生活》雷姆手办
2022/03/20 日漫