python解决ValueError: could not broadcast input array from shape (X) into shape (Y)

问题描述:这是我在pytorch中写预测函数时画图所遇到得问题,因为我需要将我的预测值贴到坐标上,对应于纵坐标(每个值对应一个区间即可),可以理解为我只有三个值,但是我要画出阶梯图,然后出现了这种问题:ValueError: could not broadcast input array from shape (3) into shape (200),就是因为我要把一个值在一个数组得前200都是这同样得值,这样就完成了阶梯的一条线,但是它数组要求只能传一维的进去,而我的input array是3维,因此只需在传入之前对获得的三个值进行debug或者shape一下就可以看出它的维度。其实也可以理解为我知做了代码块第三行的操作。

解决方法

#我print我的shape,发现是(1,1,3)是三维的,那么现在只需要改为一维就可以了,即改为(3,)
depth = np.arange(1500, 2001, 1)
v = np.empty(shape=501, )
v_ture=np.squeeze(v_ture)  #将数组(1,1,3)转为(3,),这样才能进行赋值到v中,因为v是一维数组,v_ture为三维数组,存了三个值
#print(v_ture.shape)

v[:200] = v_ture[0]
v[200:350] = v_ture[1]
v[350:] = v_ture[2]
plt.plot(v, depth, 'b', linewidth=5, label='True $v_p$')

你可能感兴趣的:(深度学习,cnn,pytorch)