keras 保存和加载模型

https://www.cnblogs.com/weiyinfu/p/9788179.html

https://blog.csdn.net/rubysxl/article/details/86510253

模型权重很容易使用HDF5格式存储,而网络结构可以以JSON或YAML格式保存。

https://yq.aliyun.com/articles/599528  :

Keras使用保存点(ModelCheckpoint)保存最好的模型

https://blog.csdn.net/qq_42189083/article/details/100543269 (有用)

keras模型训练与保存的call_back的设置

https://blog.csdn.net/a1111h/article/details/82148497

model.fit() fit 函数详解

https://www.jianshu.com/p/a95af284012d

keras建立多层神经网络

keras记录损失函数值:

https://blog.csdn.net/yang_daxia/article/details/84571658

在Keras中使用TensorBoard:

https://blog.csdn.net/bqw18744018044/article/details/83862600

    # 模型可视化
    tensorboard = keras.callbacks.TensorBoard(log_dir='log')
    # 按指定次数保存模型及结构
    path_save = "F:\Study\Speech Enhancement\SE-DNN-NMF\model_save\model-{epoch:02d}-12.hdf5"
    checkpoint = keras.callbacks.ModelCheckpoint(filepath=path_save , verbose=1, save_best_only=False, period=1)
    callback_lists = [tensorboard, checkpoint]
    model.fit(X_train, y_train, batch_size=10240 , epochs=5 , callbacks=callback_lists)    #添加tensorboard可视化

命令行: tensorboard --logdir="F:\Study\Speech Enhancement\SE-DNN-NMF\log"

网页:    http://DESKTOP-RN5FCV5:6006

 

keras 中 model.evaluate 和 model.predict 的区别:

    # 评估模型,不输出预测结果,需要测试数据和真实标签
    loss,accuracy = model.evaluate(X_test, Y_test)
    print('\ntest loss',loss)
    print('accuracy',accuracy)

    #模型预测,输入测试集,输出预测结果,不需要真实标签
    y_pred = model.predict(X_test, batch_size = 1)
 

https://blog.csdn.net/qq_27261889/article/details/85160358

keras从训练到预测,函数的选择:fit,fit_generator, predict,predict_generator

https://www.cnblogs.com/hhh5460/p/10217000.html

使用keras的LSTM进行预测

保存模型代码:

    def get_dnn_model(X_train, y_train, args):
        # LeakyReLU, PReLU, ELU, ThresholdedReLU, SReLU
        model = Sequential()

        # 输入层及第一个隐藏层。n_hidden--定义隐藏层神经元个数,input_dim--输入层神经元个数
        model.add(Dense(args.n_hidden, input_dim=X_train.shape[1], init='glorot_normal'))  # glorot_normal,he_normal
        model.add(BatchNormalization())
        # model.add(Activation('relu'))
        model.add(LeakyReLU(alpha=0.1))
        model.add(Dropout(args.drop_out))

        # 第二个隐藏层
        model.add(Dense(args.n_hidden, init='glorot_normal'))
        model.add(BatchNormalization())
        # model.add(Activation('relu'))
        model.add(LeakyReLU(alpha=0.1))
        model.add(Dropout(args.drop_out))

        # 第三个隐藏层
        model.add(Dense(args.n_hidden, init='glorot_normal'))
        model.add(BatchNormalization())
        # model.add(Activation('relu'))
        model.add(LeakyReLU(alpha=0.1))
        model.add(Dropout(args.drop_out))

        #输出层,units--定义输出层层神经元个数
        model.add(Dense(units=y_train.shape[1], init='glorot_normal'))
        model.add(BatchNormalization())
        model.add(Activation('linear'))

        # 编译模型
        model.compile(loss='mse', optimizer='adam', metrics=['mse'])
        # model.summary()
        return model

    model = get_dnn_model(X_train, y_train, args)

    # 载入整个模型结构
    filepath = "F:\Study\Speech Enhancement\SE-DNN-NMF\model_save\mymodel.hdf5"
    if os.path.exists(filepath):
        model = keras.models.load_model(filepath)
        # 若成功加载前面保存的参数,输出下列信息
        print("checkpoint loaded")    
    # 载入整个模型结构
    # model = keras.models.load_model("F:\Study\Speech Enhancement\SE-DNN-NMF\model_save\mymodel.h5")

    #训练模型 ,X_train是输入数据, y_train是标签
    # model.fit(X_train, y_train, batch_size=1024 , epochs=10)
    # model.fit(x, y, batch_size=32, epochs=10, verbose=1, callbacks=None,
    #     validation_split=0.0, validation_data=None, shuffle=True,
    #     class_weight=None, sample_weight=None, initial_epoch=0)

    # 保存最后一个模型及结构
    # model.save("F:\Study\Speech Enhancement\SE-DNN-NMF\model_save\mymodel.h5")

    # 按指定次数保存模型及结构
    path_save = "F:\Study\Speech Enhancement\SE-DNN-NMF\model_save\model-{epoch:02d}.hdf5"
    # checkpoint = keras.callbacks.ModelCheckpoint(filepath=path_save, monitor='val_acc', verbose=0, save_best_only=True,
    #                              save_weights_only=False, mode='max', period=1)
    # 必须设置save_best_only=False,才能保存多个模型。period=2表示每隔2个epochs,保存一次模型。verbose=0,不打印信息,verbose=1,打印信息。
    checkpoint = keras.callbacks.ModelCheckpoint(filepath=path_save , verbose=1,  save_best_only=False, period=2)
    model.fit(X_train, y_train, batch_size=10240 , epochs=6 , callbacks=[checkpoint])

生成了三个模型 ( epochs/period=6/2=3 )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值