目录
  • 学习前言
  • Keras中保存与读取的重要函数
    • 1、model.save
    • 2、load_model
  • 全部代码

    学习前言

    开始做项目的话,有些时候会用到别人训练好的模型,这个时候要学会load噢。

    Keras中保存与读取的重要函数

    1、model.save

    model.save用于保存模型,在保存模型前,首先要利用pip install安装h5py的模块,这个模块在Keras的模型保存与读取中常常被使用,用于定义保存格式。

    pip install h5py

    完成安装后,可以通过如下函数保存模型。

    model.save("./model.hdf5")

    其中,model是已经训练完成的模型,save函数传入的参数就是保存后的位置+名字。

    2、load_model

    load_model用于载入模型。

    具体使用方式如下:

    model = load_model("./model.hdf5")

    其中,load_model函数传入的参数就是已经完成保存的模型的位置+名字。./表示保存在当前目录。

    全部代码

    这是一个简单的手写体识别例子,在之前也讲解过如何构建

    python神经网络学习使用Keras进行简单分类,在最后我添加上了模型的保存与读取函数。

    import numpy as np
    from keras.models import Sequential,load_model,save_model
    from keras.layers import Dense,Activation ## 全连接层
    from keras.datasets import mnist
    from keras.utils import np_utils
    from keras.optimizers import RMSprop
    # 获取训练集
    (X_train,Y_train),(X_test,Y_test) = mnist.load_data()
    # 首先进行标准化 
    X_train = X_train.reshape(X_train.shape[0],-1)/255
    X_test = X_test.reshape(X_test.shape[0],-1)/255
    # 计算categorical_crossentropy需要对分类结果进行categorical
    # 即需要将标签转化为形如(nb_samples, nb_classes)的二值序列
    Y_train = np_utils.to_categorical(Y_train,num_classes= 10)
    Y_test = np_utils.to_categorical(Y_test,num_classes= 10)
    # 构建模型
    model = Sequential([
        Dense(32,input_dim = 784),
        Activation("relu"),
        Dense(10),
        Activation("softmax")
        ]
    )
    rmsprop = RMSprop(lr = 0.001,rho = 0.9,epsilon = 1e-08,decay = 0)
    ## compile
    model.compile(loss = 'categorical_crossentropy',optimizer = rmsprop,metrics=['accuracy'])
    print("\ntraining")
    cost = model.fit(X_train,Y_train,nb_epoch = 2,batch_size = 100)
    print("\nTest")
    # 测试
    cost,accuracy = model.evaluate(X_test,Y_test)
    print("accuracy:",accuracy)
    # 保存模型
    model.save("./model.hdf5")
    # 删除现有模型
    del model
    print("model had been del")
    # 再次载入模型
    model = load_model("./model.hdf5")
    # 预测
    cost,accuracy = model.evaluate(X_test,Y_test)
    print("accuracy:",accuracy)
    

    实验结果为:

    Epoch 1/2
    60000/60000 [==============================] - 6s 104us/step - loss: 0.4217 - acc: 0.8888
    Epoch 2/2
    60000/60000 [==============================] - 6s 99us/step - loss: 0.2240 - acc: 0.9366
    Test
    10000/10000 [==============================] - 1s 149us/step
    accuracy: 0.9419
    model had been del
    10000/10000 [==============================] - 1s 117us/step
    accuracy: 0.9419
    

    以上就是python神经网络使用Keras进行模型的保存与读取的详细内容,更多关于Keras模型保存读取的资料请关注其它相关文章!

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。