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 相关文章推荐
python读文件逐行处理的示例代码分享
Dec 27 Python
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
Mar 06 Python
在Django中创建第一个静态视图
Jul 15 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
Jan 05 Python
Python如何抓取天猫商品详细信息及交易记录
Feb 23 Python
python方法生成txt标签文件的实例代码
May 10 Python
Python实现的远程登录windows系统功能示例
Jun 21 Python
python实现嵌套列表平铺的两种方法
Nov 08 Python
mac在matplotlib中显示中文的操作方法
Mar 06 Python
什么是python的列表推导式
May 26 Python
Python使用sys.exc_info()方法获取异常信息
Jul 23 Python
解决python存数据库速度太慢的问题
Apr 23 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
如何分别全角和半角以避免乱码
2006/10/09 PHP
用php来检测proxy
2006/10/09 PHP
对javascript和select部件的结合运用
2006/10/09 PHP
PHP中用正则表达式清除字符串的空白
2011/01/17 PHP
如何突破PHP程序员的技术瓶颈分析
2011/07/17 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
php文件缓存类汇总
2014/11/21 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
Yii 2.0中场景的使用教程
2017/06/02 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
JS实现slide文字框缩放伸展效果代码
2015/11/05 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
JavaScript鼠标特效大全
2016/09/13 Javascript
D3.js实现直方图的方法详解
2016/09/25 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
Python 200行代码实现一个滑动验证码过程详解
2019/07/11 Python
Python如何测试stdout输出
2020/08/10 Python
教你使用Canvas处理图片的方法
2017/11/28 HTML / CSS
医院安全生产月活动总结
2014/07/05 职场文书
2014年小学教师工作总结
2014/11/10 职场文书
初中教师个人工作总结
2015/02/10 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript