Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何处理UserWarning:将稀疏索引转换为未知形状的稠密张量_Python_Tensorflow - Fatal编程技术网

Python 如何处理UserWarning:将稀疏索引转换为未知形状的稠密张量

Python 如何处理UserWarning:将稀疏索引转换为未知形状的稠密张量,python,tensorflow,Python,Tensorflow,我在Tensorflow中有以下警告:UserWarning:将稀疏索引转换为未知形状的稠密张量。这可能会消耗大量内存 我得到这个消息的原因是: 将tensorflow导入为tf #将批元素展平到秩2张量,其中第一个最大长度行 #属于第一批元素等等 all_timesteps=tf.重塑(原始输出,[-1,n尺寸])#(批次尺寸*最大长度,n尺寸) #索引到每个序列的最后一个元素。 #第一个元素的索引是序列顺序数乘以最大值 #序列长度。 #最后一个元素的索引是第一个元素加上序列的索引 #长度。

我在Tensorflow中有以下警告:UserWarning:将稀疏索引转换为未知形状的稠密张量。这可能会消耗大量内存

我得到这个消息的原因是:

将tensorflow导入为tf
#将批元素展平到秩2张量,其中第一个最大长度行
#属于第一批元素等等
all_timesteps=tf.重塑(原始输出,[-1,n尺寸])#(批次尺寸*最大长度,n尺寸)
#索引到每个序列的最后一个元素。
#第一个元素的索引是序列顺序数乘以最大值
#序列长度。
#最后一个元素的索引是第一个元素加上序列的索引
#长度。
行索引=tf.范围(0,批次大小)*最大长度+(序号-1)
#使用索引将行聚集到序列的最后一个元素
# http://stackoverflow.com/questions/35892412/tensorflow-dense-gradient-explanation
#这是由于收集稍后返回的IndexedSlice
#转化为梯度的张量
#计算。
last_timesteps=tf.gather(所有_timesteps,行索引)#(批大小,n尺寸)
tf.gather是问题的根源。我一直忽略它,直到现在,因为我的架构并不是很大。然而,现在,我有了更大的体系结构和大量的数据。当批量大小大于10时,我面临内存不足的问题。我相信处理这个警告将使我能够在GPU中安装我的模型


请注意,我使用的是Tensorflow 1.3。

我通过使用tf.dynnamic_分区而不是tf.gather解决了这个问题。我这样替换了上面的代码:

#将批元素展平为秩2张量,其中第一个最大长度行属于第一批元素,依此类推
all_timesteps=tf.重塑(原始输出,[-1,n尺寸])#(批次尺寸*最大长度,n尺寸)
#索引到每个序列的最后一个元素。
#第一个元素的索引是序列顺序数乘以最大序列长度。
#最后一个元素的索引是第一个元素的索引加上序列长度。
行索引=tf.范围(0,批次大小)*最大长度+(序号-1)
#创建0和1的向量,该向量将指定要选择的时间步。
分区=tf.reduce\u sum(tf.one\u hot(row\u inds,tf.shape(all\u timesteps)[0],dtype='int32'),0)
#选择要选择的元素。
last_timesteps=tf.dynamic_partition(所有_timesteps,partitions,2)#(批处理大小,n_dim)
last_timesteps=last_timesteps[1]

mask rcnn我是新手,您在哪里添加了这些代码行?请提供帮助