ValueError: setting an array element with a sequence问题解决思路

时间:2024-03-14 07:50:33

本人在使用Keras框架编写RNN中LSTM网络时,遇到以下一个棘手问题:

ValueError: setting an array element with a sequence问题解决思路

本人上网查了好多资料,发现,大致分为这几种情况:

  1.   输入到模型里的数据没严格转换成 np.arry()形式,
  2.   矩阵没对齐,个别行成员数量与其他不一致,不如0的缺省等。
  3.   数据dtype不对或者说不一致,应该统一成 np.float64, int或者其他。

这里重点讲第一种,也是我遇到的! 

这里要求是彻底的转换,不含嵌套,比如arry([[list([12.0, 25.0, 32.0, 47.0, 54.0, 66.0]), list([20.0, 21.0, 36.0, 41.0, 53.0, 69.0])]), 这种情况不彻底,会继续报错。

应该转换成:arry([[12.0, 25.0, 32.0, 47.0, 54.0, 66.0], [20.0, 21.0, 36.0, 41.0, 53.0, 69.0]]. 

换句话说,arry里面的应该只有一种且只能有一个容器类型,arry([[list([12.0, 25.0, 32.0, 47.0, 54.0, 66.0]), list([20.0, 21.0, 36.0, 41.0, 53.0, 69.0])])虽然内部是一种list容器,是一维的,但有两个,他们相当于独立的; 而arry([[12.0, 25.0, 32.0, 47.0, 54.0, 66.0], [20.0, 21.0, 36.0, 41.0, 53.0, 69.0]]显然内部只有一个list容器,是二维的。