【发布时间】:2021-04-13 11:38:17
【问题描述】:
我一直在尝试保存我的神经网络模型的权重,以便我可以将它的一些层用于另一个神经网络模型,以便在另一个数据集上进行训练。
预训练模型:
model = Sequential()
model.add(tf.keras.layers.Dense(100, input_shape=(X_train_orig_sm.shape)))
model.add(tf.keras.layers.Activation('relu'))
model.add(tf.keras.layers.Dropout(0.2))
model.add(tf.keras.layers.Dense(10))
model.add(tf.keras.layers.Activation('relu'))
model.add(tf.keras.layers.Dropout(0.2))
model.add(tf.keras.layers.Dense(1))
model.add(tf.keras.layers.Activation('sigmoid'))
model.summary()
# need sparse otherwise shape is wrong. check why
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
print('Fitting the data to the model')
batch_size = 20
epochs = 10
history = model.fit(X_train_orig_sm, Y_train_orig_sm, batch_size=batch_size, epochs=epochs, verbose=1, validation_split=0.2)
print('Evaluating the test data on the model')
我如何保存神经网络的权重:
model.save_weights("dnn_model.h5")
我如何尝试加载神经网络的权重:
dnn_model=model.load_weights("dnn_model.h5")
dnn_model.layers[5]
在尝试加载模型时,我收到以下错误:
AttributeError: 'NoneType' object has no attribute 'layers'
我似乎不明白为什么即使在保存模型之前训练了预训练的神经网络,也无法识别神经网络的层。任何建议、解决方案或方向都将受到高度赞赏。谢谢。
【问题讨论】:
标签: python tensorflow keras neural-network