【发布时间】:2017-06-25 20:51:35
【问题描述】:
我在 python 3.x 中使用 tensorflow 1.0.1。
我有一个张量L 有n x seq 行,我想在c 中为i 保留seq 行的第一个i 元素。所以len(c)=n,而c 中的i-th 元素表示要在L 的i-th seq 大小的分区中保留多少个元素,从该分区的开头开始。
例如,如果 L=list(range(10)) 和 c=[2,4] 则所需的结果是 D=[0,1,5,6,7,8]。当然,在实际示例中,L 和 D 是 ? x dim 张量。
我尝试使用tf.split(T,c,0),计算每个序列中要丢弃的项目数,根据示例获取c=[2,3,4,1]。这样,在丢弃所有其他元素之后,所需的行将是 tf.split 结果列表的元素。
问题是,c 的值和长度是通过占位符提供的,并且在图形创建过程中是未知的,所以我得到一个异常:
ValueError: Cannot infer num from shape Tensor("tensorname", shape=(?,), dtype=int32)
tf.split() 的文档说,如果无法从 num_or_size_splits arg 中推断出拆分的数量 num,则会引发上述异常。那么在图构建时绝对必须知道分割的数量?
如果是这样,您能想出一种可静态定义的方法来实现以下目标或解决方法吗?
提前感谢您的帮助。
【问题讨论】:
标签: python-3.x split tensorflow deep-learning