Чередование ошибок с использованием библиотеки HDF5 и модуля h5py - PullRequest
1 голос
/ 29 марта 2020

Я создал модель CNN и пытаюсь сохранить ее как файл .h5, а затем загрузить модель. Я работаю в виртуальной среде в Анаконде. Самое смешное, что я могу делать все на ноутбуке Jupyter в виртуальной среде без проблем. Однако, когда я пытаюсь запустить его в терминале (загрузить модель, затем оценить ее), это не работает. У меня есть набор чередующихся ошибок, которые есть решения в Интернете, но эти решения либо приводят к тупикам, либо приводят к другой ошибке.

Первая ошибка:

Traceback (most recent call last):
  File "MNIST.py", line 64, in <module>
    main()
  File "MNIST.py", line 62, in main
    evaluate_model()
  File "MNIST.py", line 54, in evaluate_model
    model = models.load_model('final_model.h5')
  File "C:\Users\Josh Cruz\Documents\.conda\envs\tensorflow\lib\site-packages\keras\engine\saving.py", line 492, in load_wrapper
    return load_function(*args, **kwargs)
  File "C:\Users\Josh Cruz\Documents\.conda\envs\tensorflow\lib\site-packages\keras\engine\saving.py", line 582, in load_model
    if H5Dict.is_supported_type(filepath):
  File "C:\Users\Josh Cruz\Documents\.conda\envs\tensorflow\lib\site-packages\keras\utils\io_utils.py", line 209, in is_supported_type
    isinstance(path, h5py.Group) or
AttributeError: module 'h5py' has no attribute 'Group'

Я не нашел специфического c исправления для исправления Attribute Error: module 'h5py' has no attribute 'Group', но я нашел похожих проблем в сети , решения которых предполагают, что я должен обновить h5py до 2.10.0, используя conda install -c conda-forge h5py. Это имеет смысл для меня, так как группы кажутся частью документации 2.10.0 h5py.

После установки появляется следующее:

The following packages will be downloaded:

package                    |            build
---------------------------|-----------------
h5py-2.9.0                 |nompi_py36h9dfa0df_1103         909 KB  conda-forge
------------------------------------------------------------
                                       Total:         909 KB

The following NEW packages will be INSTALLED:

  h5py               conda-forge/win-64::h5py-2.9.0-nompi_py36h9dfa0df_1103

The following packages will be SUPERSEDED by a higher-priority channel:

  certifi              pkgs/main::certifi-2019.11.28-py36_1 --> conda-forge::certifi-2019.11.28- 
py36h9f0ad1d_1

Я в замешательстве, потому что я думал, что я устанавливал версию 2.10.0. В любом случае я устанавливаю, пытаюсь перезапустить мою программу и получаю совершенно новую ошибку:

Headers are 1.10.4, library is 1.10.5
        SUMMARY OF THE HDF5 CONFIGURATION
        =================================

General Information:
-------------------
               HDF5 Version: 1.10.5
              Configured on: 2019-03-04
              Configured by: Visual Studio 14 2015 Win64
                Host system: Windows-10.0.17763
          Uname information: Windows
                   Byte sex: little-endian
         Installation point: C:/Program Files/HDF5

Ради пространства я не включил всю ошибку, но всю ошибку можно найти в этот вопрос . Есть предложение сделать pip install h5py --upgrade --no-dependencies --force, но это приведет к той же ошибке. Другой источник (который я не могу найти прямо сейчас) говорит, что могут быть проблемы с манипулированием установками pip и conda, поэтому я запускаю pip uninstall h5py, и ошибка сохраняется. Затем, используя предложение здесь , я запускаю conda install -c anaconda hdf5=1.10.4, чтобы библиотека соответствовала заголовку. Я застреваю здесь, потому что, даже если я снова запускаю свою программу, я все равно получаю ту же самую ошибку. Я не понимаю почему, разве библиотека не должна быть 1.10.4?

Другие места тогда предложили мне удалить, а затем переустановить. Если я удалю, я получу первую ошибку, которую я записал. когда я переустанавливаю, цикл начинается снова. Любая помощь будет оценена.

1 Ответ

1 голос
/ 31 марта 2020

Вы уже пробовали запустить, используя hdf5 = 1.10.5 в этом conda install -c anaconda hdf5=1.10.5 вместо использования hdf5 = 1.10.4 ?

У вас есть 1.10. 4 Библиотека hdf5 установлена ​​в среде conda, в зависимости от Tensorflow имеются более новые заголовочные файлы hdf5 1.10.5.

Попробуйте обновить библиотеку conda hdf5 до более новой версии 1.10.5 или альтернативно используйте команду:

set HDF5_DISABLE_VERSION_CHECK=2 

Это должно отключить предупреждение, но не дает никаких гарантий правильного выполнения, поэтому Лучше обновить hdf5 библиотека до той же версии 1.10.5.

Если этого было недостаточно, попробуйте также этот обходной путь:

Сначала попробуйте удалить обновление для h5py 2.10 .0 версии вернуть его к исходному и

обновить hdf5 до версии 1.10.5 с помощью:

conda install -c anaconda hdf5=1.10.5

И удалить двойной (если у вас установлен двойной h5py) установить h5py через:

conda uninstall h5py
pip uninstall h5py

Если у вас есть только один, удалите его

Наконец, обновите версию hdf5 2.10.0 еще раз до

conda install -c conda-forge h5py

Надеюсь, это поможет.

...