1. 程式人生 > >使用tensorflow/keras時出現數組維度不匹配問題 的解決方法

使用tensorflow/keras時出現數組維度不匹配問題 的解決方法

一、環境
Ubuntu    16.04
tensorflow    1.4.0
keras    2.1.3


二、訓練資料時報錯:
ValueError: Error when checking target: expected model_2 to have shape (None, 3) but got array with shape (4, 1
原因:陣列的維度不正確。


三、解決思路

一開始的想法:tensorflow   和  keras  的版本不相容?

經過多次安裝不同版本的tensorflow   和  keras  ,發現問題依舊存在。而且在python環境下使用命令:

import tensorflow
或者
import keras
時,報錯:
/home/×××/anaconda2/lib/python2.7/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters

經過了多個版本的搭配,發現問題的原因不是 tensorflow   和  keras  的版本不相容,而是
/home/×××/anaconda2/lib/python2.7/site-packages/h5py  
這個檔案的原因。

最終解決方法:在終端中使用命令:pip install h5py==2.8.0rc1 


就可以正常使用了,不會再報陣列唯獨不匹配等問題了。

補充:h5py檔案是存放兩類物件的容器,資料集(dataset)和組(group),dataset類似陣列類的資料集合,和numpy的陣列差不多。