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实现简单字典树的方法
Apr 29 Python
浅谈Python 字符串格式化输出(format/printf)
Jul 21 Python
读写json中文ASCII乱码问题的解决方法
Nov 05 Python
Python使用pymysql小技巧
Jun 04 Python
计算机二级python学习教程(3) python语言基本数据类型
May 16 Python
Python使用sklearn库实现的各种分类算法简单应用小结
Jul 04 Python
django 中QuerySet特性功能详解
Jul 25 Python
Python Django简单实现session登录注销过程详解
Aug 06 Python
PyCharm 专业版安装图文教程
Feb 20 Python
浅谈ROC曲线的最佳阈值如何选取
Feb 28 Python
python相对企业语言优势在哪
Jun 12 Python
深度学习小工程练习之垃圾分类详解
Apr 14 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
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
php array的学习笔记
2012/05/16 PHP
php中autoload的用法总结
2013/11/08 PHP
php版淘宝网查询商品接口代码示例
2014/06/17 PHP
一段实用的php验证码函数
2016/05/19 PHP
php-msf源码详解
2017/12/25 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
js 浏览器事件介绍
2012/03/30 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
2014/01/06 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
javascript中几个容易混淆的概念总结
2015/04/14 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
JavaScript数组去重的方法总结【12种方法,号称史上最全】
2019/02/28 Javascript
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
复习Python中的字符串知识点
2015/04/14 Python
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
浅谈Python的list中的选取范围
2018/11/12 Python
Django框架 querySet功能解析
2019/09/04 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
老教师工作总结的自我评价
2013/09/27 职场文书
自我鉴定注意事项
2014/01/19 职场文书
小学生考试获奖感言
2014/01/30 职场文书
优秀班主任工作总结2015
2015/05/25 职场文书
2019同学聚会主持词
2019/05/06 职场文书
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python