美文网首页
Keras 模型构建

Keras 模型构建

作者: 郭彦超 | 来源:发表于2019-04-30 13:29 被阅读0次

    介绍

    Keras中构建 模型有两种方式,一种是通过Model类构建,一种是通过Sequential构建。前者类似对数据的pipline处理,后者侧重于模型的堆叠。

    Model操作

    tf.keras.Model
    tf.keras.models.Model
    

    Model 类提供了数据特征处理和模型训练的一些操作。在keras中构建model有两种方式,直接构建和通过定义一个子类构建。

    • 直接构建
    import tensorflow as tf
    
    inputs = tf.keras.Input(shape=(3,))
    x = tf.keras.layers.Dense(4, activation=tf.nn.relu)(inputs)
    outputs = tf.keras.layers.Dense(5, activation=tf.nn.softmax)(x)
    model = tf.keras.Model(inputs=inputs, outputs=outputs)
    

    首先需要定义一个layer的pipline ,然后通过传入输入输出参数进行构建。

    • 通过定义一个model class来构建
    import tensorflow as tf
    
    class MyModel(tf.keras.Model):
    
      def __init__(self):
        super(MyModel, self).__init__()
        self.dense1 = tf.keras.layers.Dense(4, activation=tf.nn.relu)
        self.dense2 = tf.keras.layers.Dense(5, activation=tf.nn.softmax)
    
      def call(self, inputs):
        x = self.dense1(inputs)
        return self.dense2(x)
    
    model = MyModel()
    

    在MyModel类init函数中初始化需要的网络层,然后实现一个前向传播函数,来定义传播方式;推荐使用这种方式进行构建,代码高度模块化,并且可以通过传递参数控制前向传播的执行逻辑。

    import tensorflow as tf
    
    class MyModel(tf.keras.Model):
    
      def __init__(self):
        super(MyModel, self).__init__()
        self.dense1 = tf.keras.layers.Dense(4, activation=tf.nn.relu)
        self.dense2 = tf.keras.layers.Dense(5, activation=tf.nn.softmax)
        self.dropout = tf.keras.layers.Dropout(0.5)
    
      def call(self, inputs, training=False):
        x = self.dense1(inputs)
        if training:
          x = self.dropout(x, training=training)
        return self.dense2(x)
    
    model = MyModel()
    

    Sequential操作

    通过网络层堆叠构建模型

    tf.keras.Sequential
    tf.keras.models.Sequential
    
    • 我们定义了一个Sequential, 并添加两层
    model = tf.keras.Sequential()
    model.add(tf.keras.layers.Dense(32, input_shape=(500,)))
    model.add(tf.keras.layers.Dense(32))
    

    相关文章

      网友评论

          本文标题:Keras 模型构建

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