使用tensorflow/keras時出現數組維度不匹配問題 的解決方法
阿新 • • 發佈:2019-01-24
一、環境
Ubuntu 16.04
tensorflow 1.4.0
keras 2.1.3
二、訓練資料時報錯:
三、解決思路
一開始的想法:tensorflow 和 keras 的版本不相容?
經過了多個版本的搭配,發現問題的原因不是 tensorflow 和 keras 的版本不相容,而是
最終解決方法:在終端中使用命令:pip install h5py==2.8.0rc1
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的陣列差不多。