keras load_模型给出了TypeError:int()参数“NoneType”

2024-06-07 22:09:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在colab上成功地使用keras和tensorflow训练神经网络,如下所示:

tf.keras.backend.clear_session()

logpath_ms = './best_model.h5'
modelsave_cb = tf.keras.callbacks.ModelCheckpoint(logpath_ms, monitor='val_loss', mode='min', verbose=1, save_best_only=True)

model = Sequential()
model.add(Bidirectional(LSTM(units=30, return_sequences=True, input_shape = (n_input,X.shape[1]) ) ))
model.add(Dropout(0.2))
model.add(AveragePooling1D(pool_size=(4), strides=4))
model.add(LSTM(units= 30 , return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(units= 30 , return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(units= 30))
model.add(Dropout(0.2))
model.add(Dense(units = 1, activation='linear'))
model.compile(optimizer='adam', loss='mean_squared_error',metrics=['mse'])

model.fit(train_generator, validation_data=val_generator, epochs=10, verbose=1,
             callbacks=[modelsave_cb])

正如您所看到的,当一个时代之后出现改进时,我使用回调保存模型。不幸的是,当我尝试在之后加载模型时,会收到错误消息:

model = load_model(logpath_ms)

TypeError                                 Traceback (most recent call last)
<ipython-input-32-ab300646bc5b> in <module>()
----> 1 model = load_model(logpath_ms)

28 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/init_ops.py in _compute_fans(shape)
   1423     fan_in = shape[-2] * receptive_field_size
   1424     fan_out = shape[-1] * receptive_field_size
-> 1425   return int(fan_in), int(fan_out)
   1426 
   1427 

TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

这里是colab笔记本的link,这里是h5-model file。我认为问题可能是h5文件是空的(因为错误消息“NoneType”),但事实并非如此。文件路径中也没有输入错误,否则我会收到不同的消息。错误的原因是什么,如何解决


Tags: inaddtruemodelreturn错误dropoutkeras

热门问题