我有一个TensorFlow模型,我想在其中传递图像以使其确定图像中的对象。
但是,模型抱怨图像的形状说它希望以(1, 1, 1, 2048)
的形式出现,但是它正在接收(1, 7, 7, 2048)
。
我尝试通过进行numpy.reshape()
或numpy.reshape(myObj, (1, 1, 1, 2048))
在图像上进行numpy.reshape(myObj, (1, 1, 1, -1))
的操作。但是,前者只是抱怨无法将大小为100352的数组重塑为(1, 1, 1, 2048)
,而后者将数组的最后一个元素的大小重塑为(7, 7, 2048)
的倍数,即100352。
如何重塑奇数数组大小,或者这不是Numpy形状/重塑的工作方式?是否有其他方法可以执行我要求的Numpy?
答案 0 :(得分:0)
如果n
和m
不相等,则不能将n
元素数组重塑为m
元素数组。重塑数组的操作实际上只是获取同一数组的新视图的操作。
当您尝试将形状调整为包含n=1*7*7*2048=100353
个元素的数组时,您的输入数组具有m=1*1*1*2048=2048
个元素。
正如hpaulj指出的那样,您的问题出在输入形状上。从您提到的(1, 7, 7, 2048)
和(1, 1, 1, 2048)
的形状看来,您的预期输入可能应该从下一层(可能是在全局池化阶段之后)提取出来,但是如果没有更多详细信息,我们不能说太多您的模型。