h5py文件报错OSError: Unable to open file (file signature not found)

训练部分代码如下:

model training 模型训练

autoencoder.fit(x=x_train, y=x_train, batch_size=32, epochs=100,verbose = 1, validation_split=0.1)

model save 模型保存

save encoder

modelsave1 = './Modelsave/encoder.h5'
encoder.save(modelsave1)

save decoder

modelsave2 = './Modelsave/decoder.h5'
decoder.save(modelsave2)

model test 模型测试

y_test = autoencoder.predict(x_test, batch_size=32)
print('The NMSE is ' + np.str(NMSE(x_test, y_test)))

环境是 3060本 双显卡 python3.7 windows环境下 tensorflow-gou==2.0 numpy==1.18.1(说明里指定) h5py==2.10.0(说明里指定) Sklearn==0.23.2(说明里指定) cuda==10.0 cudnn与cuda对应

数据选用的是mat文件,之前是32w×1024的,电脑跑不动,我用matlab2020a打开并改小了,改成了1024×1024的了,文件名与格式与修改之前一模一样,名称:“Hdata” 文件类型:“MATLAB Data (.mat)”

然后运行就报错
File "h5py_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py\h5f.pyx", line 88, in h5py.h5f.open
OSError: Unable to open file (file signature not found)

去网上搜过好多种改正方法 都试过了 不奏效
试过 将h5py版本改成最新的 也改成过2.8.0(说明上写的是用2.10.0)没有用
还有说 要重新训练的 我这个就是一开始的训练 已经报错了 不能重新训练
然后 Modelsave里面一开始就有一个 decoder.h5文件和一个 encoder.h5文件,我也试过将它们都删了,结果与删之前报错一致
网上说还一种方法 调用scipy库我也使用了 打了一行这个代码
import scipy.io
matr = scipy.io.loadmat(matFile)
print(matr.keys())
结果还是没用

恳请帮忙解答一下 刚开始入门深度学习 跑的是导师给的代码

感谢大家 已经找到解决方法了

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。