使用
keras.models.load
时,它会在 h5f.open(name, flags, fapl=fapl)
上抛出错误并显示 OSError: Unable to open file (file signature not found)
。
DNN模型文件代码
import random
import numpy as np
import tensorflow as tf
from keras.layers import Dense, Dropout
from keras.models import Sequential
from keras.regularizers import l1, l2
from keras.optimizers import Adam
def set_seeds(seed = 100):
random.seed(seed)
np.random.seed(seed)
tf.random.set_seed(seed)
def cw(df):
c0, c1 = np.bincount(df["dir"])
w0 = (1/c0) * (len(df)) / 2
w1 = (1/c1) * (len(df)) / 2
return {0:w0, 1:w1}
optimizer = Adam(lr = 0.0001)
def create_model(hl = 2, hu = 100, dropout = False, rate = 0.3, regularize = False,
reg = l1(0.0005), optimizer = optimizer, input_dim = None):
if not regularize:
reg = None
model = Sequential()
model.add(Dense(hu, input_dim = input_dim, activity_regularizer = reg ,activation = "relu"))
if dropout:
model.add(Dropout(rate, seed = 100))
for layer in range(hl):
model.add(Dense(hu, activation = "relu", activity_regularizer = reg))
if dropout:
model.add(Dropout(rate, seed = 100))
model.add(Dense(1, activation = "sigmoid"))
model.compile(loss = "binary_crossentropy", optimizer = optimizer, metrics = ["accuracy"])
return model
加载模型及参数
# Loading the model
import keras
model = keras.models.load_model("C:/Users/Hussein Ali/Desktop/d/DNNModel.py")
错误:
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
Cell In[1], line 3
1 # Loading the model
2 import keras
----> 3 model = keras.models.load_model("C:/Users/Hussein Ali/Desktop/d/DNNModel.py")
File C:\anaconda\lib\site-packages\keras\utils\traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
67 filtered_tb = _process_traceback_frames(e.__traceback__)
68 # To get the full stack trace, call:
69 # `tf.debugging.disable_traceback_filtering()`
---> 70 raise e.with_traceback(filtered_tb) from None
71 finally:
72 del filtered_tb
File C:\anaconda\lib\site-packages\h5py\_hl\files.py:533, in File.__init__(self, name, mode, driver, libver, userblock_size, swmr, rdcc_nslots, rdcc_nbytes, rdcc_w0, track_order, fs_strategy, fs_persist, fs_threshold, fs_page_size, page_buf_size, min_meta_keep, min_raw_keep, locking, alignment_threshold, alignment_interval, **kwds)
525 fapl = make_fapl(driver, libver, rdcc_nslots, rdcc_nbytes, rdcc_w0,
526 locking, page_buf_size, min_meta_keep, min_raw_keep,
527 alignment_threshold=alignment_threshold,
528 alignment_interval=alignment_interval,
529 **kwds)
530 fcpl = make_fcpl(track_order=track_order, fs_strategy=fs_strategy,
531 fs_persist=fs_persist, fs_threshold=fs_threshold,
532 fs_page_size=fs_page_size)
--> 533 fid = make_fid(name, mode, userblock_size, fapl, fcpl, swmr=swmr)
535 if isinstance(libver, tuple):
536 self._libver = libver
File C:\anaconda\lib\site-packages\h5py\_hl\files.py:226, in make_fid(name, mode, userblock_size, fapl, fcpl, swmr)
224 if swmr and swmr_support:
225 flags |= h5f.ACC_SWMR_READ
--> 226 fid = h5f.open(name, flags, fapl=fapl)
227 elif mode == 'r+':
228 fid = h5f.open(name, h5f.ACC_RDWR, fapl=fapl)
File h5py\_objects.pyx:54, in h5py._objects.with_phil.wrapper()
File h5py\_objects.pyx:55, in h5py._objects.with_phil.wrapper()
File h5py\h5f.pyx:106, in h5py.h5f.open()
OSError: Unable to open file (file signature not found)
model
可以表示几个不同的元素。
model
H5
你混淆了这些概念。
如果您想从
DNNModel.py
加载代码,请使用标准
import DNNModel
model = DNNModel.create_model()
但是这给出了模型中没有预训练
weights
的新鲜模型,并且需要很长时间来训练它。
因此,我们使用文件
H5
来保留模型中预训练的 weights
,然后我们再次加载它以使用预训练的 weights
创建模型,这样我们就不必浪费时间再次训练它。
keras.models.load_model(model, 'model.h5') # save pretrained model in file
model = keras.models.load_model('model.h5') # load pretrained model from file