前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tf.slice函数解析

tf.slice函数解析

作者头像
演化计算与人工智能
发布2020-08-14 14:25:42
8310
发布2020-08-14 14:25:42
举报

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

解释

  • 这个函数的作用是从输入数据input中提取出一块切片
    • 切片的尺寸是size,切片的开始位置是begin。
    • 切片的尺寸size表示输出tensor的数据维度,其中size[i]表示在第i维度上面的元素个数。
    • 开始位置begin表示切片相对于输入数据input_的每一个偏移量,比如数据input是

[[[1, 1, 1], [2, 2, 2]], [[33, 3, 3], [4, 4, 4]], [[5, 5, 5], [6, 6, 6]]],

  • begin为[1, 0, 0],那么数据的开始位置是33。因为,第一维偏移了1,其余几位都没有偏移,所以开始位置是33。
  • 操作满足:size[i] = input.dim_size(i) - begin[i] 0 <= begin[i] <= begin[i] + size[i] <= Di for i in [0, n]
代码语言:javascript
复制
import tensorflow as tf

sess = tf.Session()
input = tf.constant([[[1, 1, 1], [2, 2, 2]],
                     [[3, 3, 3], [4, 4, 4]],
                     [[5, 5, 5], [6, 6, 6]]])
data = tf.slice(input, [1, 0, 0], [1, 1, 3])
print(sess.run(data))
"""[1,0,0]表示第一维偏移了1
则是从[[[3, 3, 3], [4, 4, 4]],[[5, 5, 5], [6, 6, 6]]]中选取数据
然后选取第一维的第一个,第二维的第一个数据,第三维的三个数据"""
# [[[3 3 3]]]
data = tf.slice(input, [1, 0, 0], [1, 2, 3])
print(sess.run(data))
# [[[3 3 3]
#   [4 4 4]]]
data = tf.slice(input, [1, 0, 0], [2, 1, 3])
print(sess.run(data))
# [[[3 3 3]]
#
#  [[5 5 5]]]
data = tf.slice(input, [1, 0, 0], [2, 2, 2])
print(sess.run(data))
# [[[3 3]
#   [4 4]]
#
#  [[5 5]
#   [6 6]]]
"""输入参数:
  ● input_: 一个Tensor。
  ● begin: 一个Tensor,数据类型是int32或者int64。
  ● size: 一个Tensor,数据类型是int32或者int64。
  ● name:(可选)为这个操作取一个名字。
输出参数:
  ● 一个Tensor,数据类型和input_相同。"""
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DrawSky 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • tf.slice(input_, begin, size, name = None)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档