我正在尝试使用max_pool_with_argmax和sparse_to_dense来实现http://www.cv-foundation.org/openaccess/content_iccv_2015/html/Noh_Learning_Deconvolution_Network_ICCV_2015_paper.html中描述的解除拼接。但是sparse_to_dense函数似乎只将标量值作为output_shape。 例如,我写了这个脚本:
import tensorflow as tf
import numpy as np
unpooled=tf.sparse_to_dense(sparse_indices=[0,1,3],output_shape=[3,4],sparse_values=[4,5,6])
sess=tf.Session()
[unpol]=sess.run([unpooled])
print(unpol)
它会引发错误gose:
提升类型(e)(node_def,op,message)
tensorflow.python.framework.errors.InvalidArgumentError:output_shape的元素数量不正确:2应该是:1
这是一个错误还是我错了?
答案 0 :(得分:0)
未计算的行应为:
unpooled=tf.sparse_to_dense(sparse_indices=[0,1,3],output_shape=[4],sparse_values=[4,5,6])
: [4,5,0,6]
因为最大索引是3,这意味着你有4个值。