Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.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 Theano重塑&x2013;索引ouf界限_Python_Debugging_Reshape_Theano - Fatal编程技术网

Python Theano重塑&x2013;索引ouf界限

Python Theano重塑&x2013;索引ouf界限,python,debugging,reshape,theano,Python,Debugging,Reshape,Theano,我似乎无法让西亚诺按照自己的意愿重塑我的张量。下面代码波纹管中的重塑应该保持keep_dims维度,并将所有剩余维度展平为单个数组 如果我使用测试值运行该代码,则该代码会在重塑行上的索引器错误:索引超出界限。否则,函数似乎可以编译,但在第一次实际输入时失败,并出现ValueError:新数组的总大小必须保持不变 当我尝试对一个等价的代码使用justnumpy时,它工作正常。我做错什么了吗?或者是否有任何简单的方法可以查看用于重塑的结果尺寸(ipdb没有帮助,因为一切都是Theano变量) 问题与

我似乎无法让西亚诺按照自己的意愿重塑我的张量。下面代码波纹管中的重塑应该保持
keep_dims
维度,并将所有剩余维度展平为单个数组

如果我使用测试值运行该代码,则该代码会在
重塑
行上的
索引器错误:索引超出界限
。否则,函数似乎可以编译,但在第一次实际输入时失败,并出现
ValueError:新数组的总大小必须保持不变

当我尝试对一个等价的代码使用justnumpy时,它工作正常。我做错什么了吗?或者是否有任何简单的方法可以查看用于重塑的结果尺寸(
ipdb
没有帮助,因为一切都是Theano变量)


问题与如何组合新形状的两个组件有关。这个

由于您使用的是测试值机制,您可以通过简单地打印测试值位和片段来调试这个问题。例如,我使用

print inputs.shape.tag.test_value
print inputs.shape[0:keep_dims].tag.test_value
print inputs.shape[keep_dims:].tag.test_value
print T.prod(inputs.shape[keep_dims:]).tag.test_value
print (inputs.shape[0:keep_dims] + (T.prod(inputs.shape[keep_dims:]),)).tag.test_value
print T.concatenate([inputs.shape[0:keep_dims], [T.prod(inputs.shape[keep_dims:])]]).tag.test_value

这显示了问题的解决方法:使用
T.concatenate
keep_dim
s与剩余dim的乘积组合起来。

太好了,谢谢!不知何故,我错过了你也可以在形状上调用
.tag.test\u value
。仅供参考,
x.tag.test\u value.shape
x.shape.tag.test\u value
将给出相同的结果。
print inputs.shape.tag.test_value
print inputs.shape[0:keep_dims].tag.test_value
print inputs.shape[keep_dims:].tag.test_value
print T.prod(inputs.shape[keep_dims:]).tag.test_value
print (inputs.shape[0:keep_dims] + (T.prod(inputs.shape[keep_dims:]),)).tag.test_value
print T.concatenate([inputs.shape[0:keep_dims], [T.prod(inputs.shape[keep_dims:])]]).tag.test_value