我已经创建了一个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吗?
然后其他地方建议我卸载,然后重新安装。如果我卸载,则会得到写下的第一个错误。当我重新安装时,循环再次开始。任何帮助将不胜感激。
答案 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
我希望这会有所帮助。