美文网首页
Keras模型学习

Keras模型学习

作者: dc_3 | 来源:发表于2019-08-23 10:57 被阅读0次

    Keras模型主要有两种,Sequential和函数式模型Model,引用方式如下:

    from keras.models import Sequential
    from keras.models import Model
    

    首先说一下Sequential

    Sequential是一系列网络层按顺序构成的栈

    主要由三个部分组成:1. 使用add添加层 2. 使用compile定义损失函数和优化器 3. 使用fit feed网络数据。具体代码如下:

    from Keras.models import Sequential
    #实例化一个model
    model=Sequential()
    #向model里添加层
    from keras.layers import Dense, Activation
    #全连接层,第一层需指定输入维度(输入特征数),units代表这一层输出的特征数量,这里是64
    model.add(Dense(units=64, input_dim=100))
    #激活函数
    model.add(Activation("relu"))
    #不需要添加输入层特征数,模型会自动推算它是64
    model.add(Dense(units=10))
    #类别=10,激活函数选用softmax
    model.add(Activation("softmax"))
    #到这里模型网络层添加完毕
    #接着指定损失函数和优化器。损失函数就是计算模型预测值和真实标签之间的差异,优化器指反向传播时使用的梯度下降方法。
    from keras.optimizers import SGD
    model.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.01, momentum=0.9, nesterov=True))
    #接着喂给模型数据,Keras以Numpy数组作为输入数据和标签的数据类型。
    import numpy as np
    (x_train = np.random.random((1000, 100))
     y_train = np.random.randint(10, size=(1000, 1))
    # Convert labels to categorical one-hot encoding
     y_train = keras.utils.to_categorical(y_train, num_classes=10)
    #batch_size=32,轮次=5。
    model.fit(x_train, y_train, epochs=5, batch_size=32)
    

    生成式函数模型Model。

    这个Model里面的层有输入和输出。输入(指()里的tensor)是上一层的输出,输出也是一个tensor。compile和fit和Sequential相同。具体代码如下:

    from Keras.models import Model
    from Keras.layers import Input,Dense
    #定义Input的维度,如果是图像那么shape可能是(None,None,3)
    input=Input(shape=(784,))
    x=Dense(units=64,activation='relu')(input)
    x=Dense(units=64,activation='relu')(x)
    predictions = Dense(10, activation='softmax')(x)
    model = Model(inputs=inputs, outputs=predictions)
    model.compile(optimizer='rmsprop',
                  loss='categorical_crossentropy',
                  metrics=['accuracy'])
    model.fit(data, labels)  # starts training
    

    利用函数式模型的接口,我们可以很容易的重用已经训练好的模型:你可以把模型当作一个层一样,通过提供一个tensor来调用它。注意当你调用一个模型时,你不仅仅重用了它的结构,也重用了它的权重。

    x = Input(shape=(784,))
    # This works, and returns the 10-way softmax we defined above.
    y = model(x)
    

    相关文章

      网友评论

          本文标题:Keras模型学习

          本文链接:https://www.haomeiwen.com/subject/wkxzsctx.html