使用HDF5库和h5py模块交替显示错误

时间:2020-03-29 16:39:25

标签: python tensorflow anaconda hdf5 h5py

我已经创建了一个CNN模型,并试图将其另存为.h5文件,然后再加载该模型。我正在Anaconda的虚拟环境中工作。有趣的是,我可以毫无问题地在虚拟环境中的Jupyter Notebook中完成所有操作。但是,当我尝试在终端中运行它(加载模型,然后对其进行评估)时,它不起作用。我遇到了一系列交替的错误,这些错误在网络上都有解决方案,但是这些解决方案要么导致死胡同,要么导致其他错误。

第一个错误:

exports.searchBing = async (req, res) => { 
    let {browser, page} = await openConnection();

  try {
    await page.goto('https://www.bing.com', {waitUntil: 'networkidle2'});

    page.setDefaultNavigationTimeout( 90000 );
    //await page.setViewport({width: 1024, height: 1600});

    //await page.waitFor('input[name=q]');
    await page.waitForSelector('input[name="q"]');

    var searchString = 'Hello';

    // Type search term into the search bar
    await page.type('input[name="q"]', searchString);

    try {
      await page.click('input[type="submit"]');
    } catch(error) {}
    await page.waitFor(3000);
    await page.click('input[type="submit"]');

    await page.waitForNavigation();
    await page.waitForSelector('h2 a');

    var html = await page.content();
    var results = processPage(html);

    res.status(200).send(results);


  } catch (err) {
    res.status(500).send(err.message);
  } finally {
    await closeConnection(page, browser);
  }

我尚未找到用于修复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' 的特定修复程序,但确实找到了similar issues online,其解决方案建议我应该使用Attribute Error: module 'h5py' has no attribute 'Group'将h5py更新为2.10.0。这对我来说很有意义,因为组似乎是2.10.0 h5py文档的一部分。

在安装时出现:

conda install -c conda-forge h5py

我很困惑,因为我认为我正在安装2.10.0版本。无论如何,我都会安装,尝试重新运行我的程序并得到一个全新的错误:

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

为了节省空间,我没有包括整个错误,但是可以在this question中找到整个错误。建议这样做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和conda时可能存在问题,因此我运行pip install h5py --upgrade --no-dependencies --force,错误仍然存​​在。然后,使用建议here,运行pip uninstall h5py,以使库与标头匹配。我被困在这里,因为即使再次运行程序,我仍然会得到相同的确切错误。我不明白为什么,图书馆现在不应该是1.10.4吗?

然后其他地方建议我卸载,然后重新安装。如果我卸载,则会得到写下的第一个错误。当我重新安装时,循环再次开始。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您是否已经尝试过使用 hdf5 = 1.10.5 在此运行 conda install -c anaconda hdf5=1.10.5而不是使用 hdf5 = 1.10.4

您在conda环境中安装了1.10.4 hdf5库,Tensorflow的某些依赖项具有更新的hdf5 1.10.5头文件。

尝试 将您的conda hdf5库更新到更新的1.10.5 ,或者使用以下命令:

set HDF5_DISABLE_VERSION_CHECK=2 

这应该禁用警告,但不提供正确执行的任何保证,因此 最好将hdf5 库更新为相同的版本1.10.5。 / p>

如果这还不够,请尝试以下解决方法:

首先,尝试删除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

我希望这会有所帮助。