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实现文本去重且不打乱原本顺序
Jan 26 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
python链接oracle数据库以及数据库的增删改查实例
Jan 30 Python
Python中将dataframe转换为字典的实例
Apr 13 Python
Python合并多个Excel数据的方法
Jul 16 Python
python模块之subprocess模块级方法的使用
Mar 26 Python
如何基于Python实现自动扫雷
Jan 06 Python
Python类中的装饰器在当前类中的声明与调用详解
Apr 15 Python
在tensorflow以及keras安装目录查询操作(windows下)
Jun 19 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
Jul 09 Python
Python中使用subprocess库创建附加进程
May 11 Python
Python字符串格式化方式
Apr 07 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
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
php Memcache 中实现消息队列
2009/11/24 PHP
php监测数据是否成功插入到Mysql数据库的方法
2016/11/25 PHP
js实现收缩菜单效果实例代码
2013/10/30 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
基于jQuery Easyui实现登陆框界面
2017/07/10 jQuery
vue2.0与bootstrap3实现列表分页效果
2017/11/28 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
Python中input和raw_input的一点区别
2014/10/21 Python
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
详解Python传入参数的几种方法
2019/05/16 Python
django Admin文档生成器使用详解
2019/07/22 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
深入了解python列表(LIST)
2020/06/08 Python
python 两种方法删除空文件夹
2020/09/29 Python
HTML5 visibilityState属性详细介绍和使用实例
2014/05/03 HTML / CSS
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
C语言笔试题
2014/09/04 面试题
优良学风班总结材料
2014/02/08 职场文书
先进人物事迹材料
2014/12/29 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
大学感恩节活动总结
2015/05/05 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android