python中切片访问_python-如何切片张量?

我将通过示例来解释您的代码,因此我创建了一些案例,但首先,我将向您解释tf.slice(input, begin, size)参数:

>输入是对张量的引用.

> begin是切片的索引开始.

> size是切片的偏移量.

因此,tf.slice的工作是从输入中选择一个从Tensor索引开始并以Begin大小终止的子Tensor,将Begin和size视为索引向量.下面的示例将阐明这一点:

batch = tf.constant([

[#First image

[

[0.0,10.0],

[1.0,11.0]

],

[

[3.0,33.0],

[4.0,44.0]

]

],

[#Second image

[

[5.0,55.0],

[6.0,66.0]

],

[

[7.0,77.0],

[8.0,88.0]

]

]

])

slice1 = tf.slice(batch,[0,0,0,0], [1,1,1,1])

slice2 = tf.slice(batch,[0,1,0,0], [1,1,2,2])

slice3 = tf.slice(batch,[1,1,1,0], [1,1,1,2])

slice4 = tf.slice(batch,[0,0,0,0], [2,2,2,2])

sess = tf.InteractiveSession()

print("slice1:

" + str(slice1.eval()) + "

")

print("slice2:

" + str(slice2.eval()) + "

")

print("slice3:

" + str(slice3.eval()) + "

")

print("slice4:

" + str(slice4.eval()) + "

")

在这种情况下的输出是:

slice1:

[[[[ 0.]]]]

slice2:

[[[[ 3. 33.]

[ 4. 44.]]]]

slice3:

[[[[ 8. 88.]]]]

slice4:

[[[[ 0. 10.]

[ 1. 11.]]

[[ 3. 33.]

[ 4. 44.]]]

[[[ 5. 55.]

[ 6. 66.]]

[[ 7. 77.]

[ 8. 88.]]]]

> slice1选择张量的第一个元素,因为它从[0,0,0,0]开始,并且仅选择一个元素.

> slice2选择张量的第一个元素,因为它从[0,1,0,0]开始,并在两个第一维中选择一个元素,并在三个和四个维中选择2个元素.

> slice3选择Tensor的第一个元素,因为它从[1,1,1,0]开始,并且在前三个维度中仅选择一个元素,在最后一个维度中选择2.

> slice4选择Tensor的所有元素,因为它以[0,0,0,0]开头,并且按维度两个元素,因此它覆盖了所有Tensor

请注意,所有幻灯片中的维数均相同.如果仅用一个元素删除尺寸,则可以使用tf.squeeze.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值