--> 329 return self.predict_proba(data_X)
330 else:
331 return self.predict(data_X)
/home/AIPipeline/sangfor_ai-master/sangfor_ai/custom/nlp/textcnn_model.py in predict_proba(self, data_X)
314 return 返回每个类别的概率值
315 """
--> 316 predict_proba=self.sess.run(self.pred_proba,feed_dict={self.X:data_X,self.is_training:False})
317 return predict_proba
318
~/virtualenvs/sangfor_ai/lib/python3.6/site-packages/tensorflow/python/client/session.py in run(self, fetches, feed_dict, options, run_metadata)
875 try:
876 result = self._run(None, fetches, feed_dict, options_ptr,
--> 877 run_metadata_ptr)
878 if run_metadata:
879 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr)
~/virtualenvs/sangfor_ai/lib/python3.6/site-packages/tensorflow/python/client/session.py in _run(self, handle, fetches, feed_dict, options, run_metadata)
1067 feed_handles[subfeed_t] = subfeed_val
1068 else:
-> 1069 np_val = np.asarray(subfeed_val, dtype=subfeed_dtype)
1070
1071 if (not is_tensor_handle_feed and
~/virtualenvs/sangfor_ai/lib/python3.6/site-packages/numpy/core/numeric.py in asarray(a, dtype, order)
536
537 """
--> 538 return array(a, dtype, copy=False, order=order)
539
540
中1071行出现的np.asarray()
np.asarray([[1, 2], [2, 3, 4]], dtype=np.float)
ValueError Traceback (most recent call last)
<ipython-input-19-38eed05e5a92> in <module>
----> 1 np.asarray([[1, 2], [2, 3, 4]], dtype=np.float)
~/virtualenvs/sangfor_ai/lib/python3.6/site-packages/numpy/core/numeric.py in asarray(a, dtype, order)
536
537 """
--> 538 return array(a, dtype, copy=False, order=order)
539
540
ValueError: setting an array element with a sequence.
np.asarray([[1, 2], [2, 4]], dtype=np.float)
array([[1., 2.],
[2., 4.]])
由于错误是出现在深度学习模型预测时出现的,所以一直以为是feed_dict问题
却原来是np.array造成的,错误中的sequence是代表元素长度不一样导致的。
花了很长时间一直停留在feed_dict探索上,没有快速探索到本质 ,对错误的提示仍然 不够重视导致的
本文详细解析了在使用np.asarray()函数时遇到的ValueError异常:'setting an array element with a sequence.'的问题,该问题源于传入的列表中元素长度不一致。文章通过实例展示了错误的产生过程,并分享了解决方案,强调了对错误提示信息的重视,避免在深度学习模型预测中陷入feed_dict问题的误区。

1642

被折叠的 条评论
为什么被折叠?



