How do I solve the error:cannot reshape array of size 1 into shape (3,3,1)?
How do I solve the error:cannot reshape array of size 1 into shape (3,3,1)?
我创建了这个示例代码,其中 img1 和 img2 是我转换为灰度值的图像向量。 val1,val2 变量是图像的输出。我需要使用 X 来格式化输入特征以训练神经网络,但是,当我使用重塑功能时,它会抛出此错误。我该如何解决?
这是我的代码:
check = []
img1=[1,2,3,4,5,6,7,8,9]
val1=[0,1]
img2=[9,8,7,6,5,4,3,2,1]
val2=[1,0]
check.append([np.array(img1),np.array(val1)])
check.append([np.array(img2),np.array(val2)])
print(check)
X = np.array(i[0] for i in check).reshape(-1,3,3,1)
print(X)
在你的行 X = np.array(i[0] for i in check).reshape(-1,3,3,1)
中,我认为你想要成为列表理解的东西缺少封闭的 [...] 来实现它。没有这些括号, i[0]...check 被解释为生成器理解(给出生成器而不是迭代器),因此只生成第一个元素(它创建一个大小为 1 的数组 - 因此错误)。
X = np.array(list(i[0] for i in check)).reshape(-1,3,3,1)
或
X = np.array([i[0] for i in check]).reshape(-1,3,3,1)
将解决此问题。
我创建了这个示例代码,其中 img1 和 img2 是我转换为灰度值的图像向量。 val1,val2 变量是图像的输出。我需要使用 X 来格式化输入特征以训练神经网络,但是,当我使用重塑功能时,它会抛出此错误。我该如何解决? 这是我的代码:
check = []
img1=[1,2,3,4,5,6,7,8,9]
val1=[0,1]
img2=[9,8,7,6,5,4,3,2,1]
val2=[1,0]
check.append([np.array(img1),np.array(val1)])
check.append([np.array(img2),np.array(val2)])
print(check)
X = np.array(i[0] for i in check).reshape(-1,3,3,1)
print(X)
在你的行 X = np.array(i[0] for i in check).reshape(-1,3,3,1)
中,我认为你想要成为列表理解的东西缺少封闭的 [...] 来实现它。没有这些括号, i[0]...check 被解释为生成器理解(给出生成器而不是迭代器),因此只生成第一个元素(它创建一个大小为 1 的数组 - 因此错误)。
X = np.array(list(i[0] for i in check)).reshape(-1,3,3,1)
或
X = np.array([i[0] for i in check]).reshape(-1,3,3,1)
将解决此问题。