OSError:无法打开文件(无法打开文件)

时间:2018-07-30 12:00:58

标签: python-3.x hdf5

我正在尝试为任务分配一个名为“ 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

h5py._objects.with_phil.wrapper中的文件“ h5py / _objects.pyx”,第55行

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,所有必需的库都已升级。任何帮助深表感谢。

7 个答案:

答案 0 :(得分:1)

如果您正在使用colab和Google驱动器,请使用以下方式将驱动器安装到colab:

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

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

答案 1 :(得分:0)

在使用docker image时遇到此错误。由于自定义docker的路径与root路径不同,因此出现相同的错误。

  

OSError:无法打开文件(无法打开文件:name =”,errno = 2,错误消息=' private void findEvent() { Log.d(TAG,"Start FindEvent Function"); eventRef.whereEqualTo("zip", searchZip.toString()) .limit(1).get() .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override public void onComplete(@NonNull Task<QuerySnapshot> task) { if (task.isSuccessful()) { Log.d(TAG, "Task Successful! Starting For Loop!"); for (QueryDocumentSnapshot document : task.getResult()) { Log.d(TAG, document.getId()+"=>"+document.getData()); updateUI(document); } } else { Log.w(TAG, "Error getting documents.", task.getException()); } } }); }//end findEvent function ',标志= 0,o_flags = 0)

路径的基本不匹配会引发此错误

  1. 检查相对绝对路径
  2. 检查程序期望的路径

答案 2 :(得分:0)

我遇到的问题与我发布的问题相同:

h5py.File(path) doesn't recognize folder path

我最初的理由是h5py.File(path)不能将标准子文件夹路径作为其参数,例如sealed trait WGCommand case object OpenWorkgroup extends WGCommand case class EnqueueWorkDone(id:String, actorRef:String) extends WGCommand 没问题,但是load_model("neunet.h5")会给出相同的错误。

简而言之,我的解决方案是将任何.h5文件简单地放入jupyter笔记本的工作主文件夹中,这是创建.ipynb文件的位置。您可以在jupyter笔记本中使用load_model("subfolder/neunet.h5")来查看当前的工作目录在哪里。

答案 3 :(得分:0)

我通过指定绝对路径解决了这个问题。获取工作文件夹的绝对路径,然后将该路径从工作目录追加到文件中。就我而言,该文件位于名为数据集的目录中,因此我尝试了以下代码

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

答案 4 :(得分:0)

  1. 如果您运行 a.py 时收到错误,但您在 b.py
  2. 中加载了 model.h5
  3. 请使用 a.py
  4. model.h5 连接到同一级别的目录
  5. b.py的负载('xx / model.h5')编辑为 load('model.h5')

对我有用。

答案 5 :(得分:0)

在通过设置“%cd / gdrive”安装驱动器后以及编写“ model.save('/ gdrive / mnist.h5')”时,在colab中遇到了相同的问题。然后我意识到可以创建文件并将其保存在“ / gdrive /我的驱动器/”中,而不仅仅是“ / gdrive”。因此,检查是否可以在指定的路径中创建文件非常重要。

因此,model.save('/ gdrive / My Drive / mnist.h5')对我有用。

答案 6 :(得分:0)

使用以下方法设置训练检查点的路径时,我遇到了相同的问题 tensorflow.keras.callbacks.ModelCheckpoint 我已将路径设置为:

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

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

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

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