tensorflow 中tf.strided

    技术2022-07-11  97

    函数:tf.slice(inputs, begin, size, name)

    作用:从列表、数组、张量等对象中抽取一部分数据

    begin和size是两个多维列表,他们共同决定了要抽取的数据的开始和结束位置

    begin表示从inputs的哪几个维度上的哪个元素开始抽取 size表示在inputs的各个维度上抽取的元素个数

    import tensorflow as tf import numpy as np x=[[1,2,3],[4,5,6]] with tf.Session() as sess: begin = [0,1] # 从x[0,1],即元素2开始抽取 size = [2,1] # 从x[0,1]开始,对x的第一个维度(行)抽取2个元素,在对x的第二个维度(列)抽取1个元素 print sess.run(tf.slice(x,begin,size)) # 输出[[2 5]] tf.strided_slice tf.slice

    这两用法其实是一样的,唯一的区别在于区间的开闭。

    t = tf.constant([[[1, 1, 1], [2, 2, 2]], [[3, 3, 3], [4, 4, 4]], [[5, 5, 5], [6, 6, 6]]]) c=tf.strided_slice(t, [1, 0, 0], [2, 2, 2]) #[[[3 ,3],[4 ,4]]] c=tf.slice(t, [1, 0, 0], [2, 2, 2])#[[[3, 3],[4 ,4]],[[5, 5][6 ,6]]]

    二者的区别就是tf.slice在一维上闭区间 ,tf.strided_slice在一维上开区间

    Processed: 0.017, SQL: 9