Не удалось открыть файл При загрузке модели keras с контрольной точки такого файла или каталога нет.

#python #python-3.x #keras #image-segmentation

Вопрос:

Поэтому я обучил нейронную сеть, используя следующие инструкции:

 from keras_segmentation.models.unet import vgg_unet

model = vgg_unet(n_classes=8)

model.train(
    train_images =  "dataset1/train/",
    train_annotations = "dataset1/annot/",
    checkpoints_path = "checkpoint/vggunet/vgg_unet.ckpt" , epochs=1
)
 

в результате в контрольной точке/vggunet появляются следующие файлы (вывод ls checkpoint/vggunet )

 checkpoint
vgg_unet.ckpt.0.data-00000-of-00001
checkpoint/vggunet/vgg_unet.ckpt.0.index
checkpoint/vggunet/vgg_unet.ckpt_config.json
 

Теперь я хотел бы использовать эту модель для некоторых прогнозов

 from keras_segmentation.predict import predict_multiple
from keras_segmentation.models.unet import vgg_unet
import keras

checkpoint="checkpoint/vggunet/vgg_unet.ckpt"

def get_model(checkpoint):
    model = vgg_unet(n_classes=8)
    model.load_weights(checkpoint)

    return model
    
get_model(checkpoint)
 

Однако это приводит к ошибке

 Traceback (most recent call last):
  File "pred.py", line 13, in <module>
    get_model(checkpoint)
  File "pred.py", line 9, in get_model
    model.load_weights(checkpoint)
  File "/home/bst/.local/lib/python2.7/site-packages/keras/engine/saving.py", line 492, in load_wrapper
    return load_function(*args, **kwargs)
  File "/home/bst/.local/lib/python2.7/site-packages/keras/engine/network.py", line 1221, in load_weights
    with h5py.File(filepath, mode='r') as f:
  File "/home/bst/.local/lib/python2.7/site-packages/h5py/_hl/files.py", line 408, in __init__
    swmr=swmr)
  File "/home/bst/.local/lib/python2.7/site-packages/h5py/_hl/files.py", line 173, in make_fid
    fid = h5f.open(name, flags, fapl=fapl)
  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
IOError: Unable to open file (unable to open file: name = 'checkpoint/vggunet/vgg_unet.ckpt', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)
 

Я уже перепробовал кучу различных вариантов настройки контрольной точки (указывая на каждый конкретный файл и т.д.), Но ни один из них не сработал. Если я это сделаю, я получу такую ошибку, как

 Traceback (most recent call last):
  File "pred.py", line 13, in <module>
    get_model(checkpoint)
  File "pred.py", line 9, in get_model
    model.load_weights(checkpoint)
  File "/home/bst/.local/lib/python2.7/site-packages/keras/engine/saving.py", line 492, in load_wrapper
    return load_function(*args, **kwargs)
  File "/home/bst/.local/lib/python2.7/site-packages/keras/engine/network.py", line 1221, in load_weights
    with h5py.File(filepath, mode='r') as f:
  File "/home/bst/.local/lib/python2.7/site-packages/h5py/_hl/files.py", line 408, in __init__
    swmr=swmr)
  File "/home/bst/.local/lib/python2.7/site-packages/h5py/_hl/files.py", line 173, in make_fid
    fid = h5f.open(name, flags, fapl=fapl)
  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
IOError: Unable to open file (file signature not found
 

when using checkpoint="checkpoint/vggunet/vgg_unet.ckpt.0.data-00000-of-00001"

Я подозреваю, что большая проблема заключается в том, что веса не были сохранены в формате h5py, поэтому желательно, чтобы я узнал, как загружать этот формат, хотя изменение моего кода заключается в том, что он правильно сохраняется как .h5 также приемлемо.

Кто-нибудь знает, как заставить его загружать веса с контрольной точки/vggunet/vgg_unet.ckpt.0.data-00000-of-00001?