python-3.x OSError:无法打开文件(无法打开文件)

44u64gxh  于 2023-11-20  发布在  Python
关注(0)|答案(9)|浏览(167)

我试图为我的任务加载一个名为“tr_model.h5”的预训练模型,但我得到了以下错误:

Traceback (most recent call last):
 File "Trigger_Project.py", line 84, in <module>
model = load_model(filename)
 File "Trigger_Project.py", line 84, in <module>
model = load_model(filename)
 File "/home/neeraj/anaconda3/lib/python3.6/site-packages/h5py/_hl/files.py", line 99, in make_fid
fid = h5f.open(name, flags, fapl=fapl)
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper

字符串
文件“h5 py/_objects.pyx”,第55行,在h5 py._objects. with_phil. wrapper中

File "h5py/h5f.pyx", line 78, in h5py.h5f.open
OSError: Unable to open file (unable to open file: name = 'tr_model.h5', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)


我已经确保该文件存在。我不知道为什么它显示操作系统错误。我使用的是Linux 18.04和所有所需的库升级。任何帮助是非常感谢。

wswtfjt7

wswtfjt71#

我遇到了同样的问题,我在我的问题:
h5py.File(path) doesn't recognize folder path
我最初的推理是h5py.File(path)不处理标准子文件夹路径作为其参数,例如load_model("neunet.h5")没有问题,但load_model("subfolder/neunet.h5")将给予同样的错误。
简而言之,我的解决方案是简单地将任何.h5文件放入jupyter notebook的工作主文件夹中,这是您创建.ipynb文件的地方。您可以在jupyter notebook中使用print(os.getcwd())来查看当前工作目录。

jbose2ul

jbose2ul2#

我在使用tensorflow.keras.callbacks.ModelCheckpoint设置训练检查点的路径时遇到了同样的问题,我已经将路径设置为:

path = os.path.join(subdir,filename)

字符串
使用 *f字符串 * 解决了这个问题:

path = f'{subdir}/{filename}'


因此,我还将检查如何导入load_model,尝试tensorflow.keras.models而不是仅keras.models

mtb9vblg

mtb9vblg3#

如果您正在使用colab和google drive,请使用,

# Load the Drive helper and mount
from google.colab import drive

# This will prompt for authorization.
drive.mount('/content/drive')

字符串

ljsrvy3e

ljsrvy3e4#

我通过指定绝对路径解决了这个问题。获取工作文件夹的绝对路径,然后将路径附加到工作目录中的文件。在我的示例中,文件位于名为datasets的目录中,因此我尝试了以下代码

file_name = os.path.dirname(__file__) +'\\datasets\\test_catvnoncat.h5'
test_dataset = h5py.File(file_name, "r")

字符串

6ie5vjzr

6ie5vjzr5#

我在使用docker镜像时遇到了这个错误。由于自定义的docker的路径与根路径不同,我得到了相同的错误。
OSError:无法打开文件(无法打开文件:名称=“”,错误号= 2,错误消息=“**No such file or directory*”,标志= 0,o_flags = 0)
基本上,路径不匹配会导致此错误
1.检查相对、绝对路径
1.检查程序所需的路径

7gs2gvoe

7gs2gvoe6#

1.如果你运行a.py得到了错误,但是你在b.py中加载了model.h5
1.请将model.h5cp到与a.py同级目录
1.将B.py的load('xx/model.h5')编辑为load('model.h5')
对我很有效。

mnowg1ta

mnowg1ta7#

我在colab中遇到了同样的问题,通过设置“%cd /gdrive”安装驱动器后,当我写“model.save('/gdrive/mnist.h5')"。然后我意识到文件可以创建和保存在'/gdrive/我的驱动器/',而不仅仅是'/gdrive'。所以,检查是否可以在指定的路径中创建文件很重要。
所以,model.save('/gdrive/My Drive/mnist.h5')对我来说很有用。

mw3dktmi

mw3dktmi8#

我让loss总是等于inf,因此模型文件从来没有在回调时写入磁盘,因为它只在loss的最佳情况下写入。
当我从数据集中消除所有NaN值时,一切都很顺利,模型出现在文件系统上。
在回调中启用verbosity有助于诊断这一点。
有关详细信息,请参阅Keras关于回调的官方文档。

7uzetpgm

7uzetpgm9#

我遇到了这个问题,并通过删除pycharm中的项目并在同一文件夹中重新创建一个项目来解决它。

相关问题