簡體   English   中英

如何在訓練時嘗試保存模型權重時修復“無法創建文件”錯誤

[英]how to fix 'Unable to create file' error when trying to save model weights while training

我在訓練時正在做圖像字幕項目我嘗試在每個時期之后通過 model.save('./model_weights1/model_'+ str(i) + '.h5') 保存模型權重,但我得到錯誤

它返回

無法創建文件(無法打開文件:name = './model_weights1/model_0.h5', errno = 2, error message = 'No such file or directory', flags = 13, o_flags = 602)

我檢查了目錄路徑是否存在,路徑似乎也是正確的

代碼:

for i in range(epochs):
    generator = data_loader(train_descriptions,encoded_images,maxlen,batch_size,word_to_idx)
    model.fit_generator(generator,epochs=1,steps_per_epoch=steps,verbose = 1)
    model.save('./model_weights1/model_'+ str(i) + '.h5')

錯誤


OSError                                   Traceback (most recent call last)
<ipython-input-58-00c04165c7ca> in <module>()
      2     generator = data_loader(train_descriptions,encoded_images,maxlen,batch_size,word_to_idx)
      3     model.fit_generator(generator,epochs=1,steps_per_epoch=steps,verbose = 1)
----> 4     model.save('./model_weights1/model_'+ str(i) + '.h5',overwrite=True)

~/anaconda3/lib/python3.6/site-packages/keras/engine/network.py in save(self, filepath, overwrite, include_optimizer)
   1088             raise NotImplementedError
   1089         from ..models import save_model
-> 1090         save_model(self, filepath, overwrite, include_optimizer)
   1091 
   1092     def save_weights(self, filepath, overwrite=True):

~/anaconda3/lib/python3.6/site-packages/keras/engine/saving.py in save_model(model, filepath, overwrite, include_optimizer)
    377         opened_new_file = False
    378 
--> 379     f = h5dict(filepath, mode='w')
    380 
    381     try:

~/anaconda3/lib/python3.6/site-packages/keras/utils/io_utils.py in __init__(self, path, mode)
    184             self._is_file = False
    185         elif isinstance(path, str):
--> 186             self.data = h5py.File(path, mode=mode)
    187             self._is_file = True
    188         elif isinstance(path, dict):

~/anaconda3/lib/python3.6/site-packages/h5py/_hl/files.py in __init__(self, name, mode, driver, libver, userblock_size, swmr, **kwds)
    267             with phil:
    268                 fapl = make_fapl(driver, libver, **kwds)
--> 269                 fid = make_fid(name, mode, userblock_size, fapl, swmr=swmr)
    270 
    271                 if swmr_support:

~/anaconda3/lib/python3.6/site-packages/h5py/_hl/files.py in make_fid(name, mode, userblock_size, fapl, fcpl, swmr)
    103         fid = h5f.create(name, h5f.ACC_EXCL, fapl=fapl, fcpl=fcpl)
    104     elif mode == 'w':
--> 105         fid = h5f.create(name, h5f.ACC_TRUNC, fapl=fapl, fcpl=fcpl)
    106     elif mode == 'a':
    107         # Open in append mode (read/write).

h5py/_objects.pyx in h5py._objects.with_phil.wrapper()

h5py/_objects.pyx in h5py._objects.with_phil.wrapper()

h5py/h5f.pyx in h5py.h5f.create()

OSError: Unable to create file (unable to open file: name = './model_weights1/model_0.h5', errno = 2, error message = 'No such file or directory', flags = 13, o_flags = 602)

你有路徑問題


import os
os.getcwd()

知道當前的工作目錄。 然后改變

model.save('./model_weights1/BLABLABLA)

有好的路徑

如果你只是想節省重量,那就更容易了

import os

然后定義您的 wights_path 並保存它們:

weights_path = os.getcwd() + "\\model_weights\\your_model.h5"
model.save_weights(weights_path)

經過數小時的搜索,這是有效的。 您需要輸入完整的文件路徑。 例如, /home/Desktop/Your_Directory/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM